diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java index 6da4d81..0d0b9d4 100644 --- a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java @@ -52,6 +52,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changeResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java index 6da4d81..0d0b9d4 100644 --- a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java @@ -52,6 +52,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changeResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 5bbd924..f455837 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -86,6 +86,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanToiletModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -125,6 +126,7 @@ CleanRecordBean listBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanRecordModel.setValue(listBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java index 6da4d81..0d0b9d4 100644 --- a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java @@ -52,6 +52,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changeResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 5bbd924..f455837 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -86,6 +86,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanToiletModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -125,6 +126,7 @@ CleanRecordBean listBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanRecordModel.setValue(listBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java index 73ba9b8..cb65e04 100644 --- a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java @@ -96,6 +96,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); imageModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); } @@ -141,6 +142,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); audioModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -180,6 +182,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); videoModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java index 6da4d81..0d0b9d4 100644 --- a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java @@ -52,6 +52,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changeResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 5bbd924..f455837 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -86,6 +86,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanToiletModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -125,6 +126,7 @@ CleanRecordBean listBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanRecordModel.setValue(listBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java index 73ba9b8..cb65e04 100644 --- a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java @@ -96,6 +96,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); imageModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); } @@ -141,6 +142,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); audioModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -180,6 +182,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); videoModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 341f504..c1fa7f0 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -98,6 +98,7 @@ LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { }.getType()); loginResult.setValue(loginResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -167,6 +168,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changePwdResult.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -206,6 +208,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateResult.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java index 6da4d81..0d0b9d4 100644 --- a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java @@ -52,6 +52,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changeResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 5bbd924..f455837 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -86,6 +86,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanToiletModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -125,6 +126,7 @@ CleanRecordBean listBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanRecordModel.setValue(listBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java index 73ba9b8..cb65e04 100644 --- a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java @@ -96,6 +96,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); imageModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); } @@ -141,6 +142,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); audioModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -180,6 +182,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); videoModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 341f504..c1fa7f0 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -98,6 +98,7 @@ LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { }.getType()); loginResult.setValue(loginResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -167,6 +168,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changePwdResult.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -206,6 +208,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateResult.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java b/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java index 12f5ead..96c9e18 100644 --- a/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java @@ -52,6 +52,7 @@ NewVersionBean versionBean = gson.fromJson(response, new TypeToken() { }.getType()); versionModel.setValue(versionBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/.idea/misc.xml b/.idea/misc.xml index 56a7b97..d2b5d47 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -317,7 +317,7 @@ - + @@ -342,6 +342,7 @@ + diff --git a/app/build.gradle b/app/build.gradle index 7a0922b..b88f2a5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ applicationId "com.casic.dcms" minSdkVersion 23 targetSdkVersion 31 - versionCode 1 - versionName "1.0.0.0" + versionCode 2 + versionName "1.0.0.1" manifestPlaceholders = [GETUI_APPID: "rD5OSy72eI8v86VDdfdrO8"] } diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java index 7c1a6ce..6049359 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnListFragment.java @@ -13,7 +13,7 @@ import com.casic.dcms.databinding.FragmentLightListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.vm.LightViewModel; import com.casic.dcms.widgets.LightDetailDialog; @@ -124,9 +124,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java index 945227f..731efca 100644 --- a/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/LightOnMapFragment.java @@ -24,7 +24,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.LightMapBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "处理中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "处理中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -275,7 +275,7 @@ @Override public void onClick(View v) { clearPictureMarker(); - DialogHelper.showLoadingDialog(requireContext(), "定位中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "定位中,请稍后"); LocationHelper.obtainCurrentLocation(requireContext(), new ILocationListener() { @Override @@ -294,7 +294,7 @@ } addPictureMarker(pointList); viewBinding.mapView.setViewpointCenterAsync(point, 3000); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); @@ -351,11 +351,11 @@ TextView lightTimeView = popupView.findViewById(R.id.lightTimeView); ImageView lightSwitch = popupView.findViewById(R.id.lightSwitch); - DialogHelper.showLoadingDialog(requireContext(), "路灯详情获取中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "路灯详情获取中,请稍后..."); HttpRequestHelper.doRequest(LocaleConstant.LIGHT_DETAIL, lampId, new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { String string = resultBean.string(); JSONObject jsonObject = new JSONObject(string); @@ -405,7 +405,7 @@ @Override public void onFailure(Throwable throwable) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "网络连接失败,请重新选点"); } }); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index 507b1a3..479219b 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.NewVersionBean; import com.casic.dcms.model.UserBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -70,7 +70,7 @@ @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(requireContext(), "同步完成"); user = it.getData(); updateUserInfo(); @@ -167,7 +167,7 @@ viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "同步中,请稍后..."); userViewModel.getUserData(); } }); @@ -176,9 +176,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "请求中,请稍后"); + DialogHub.get().showLoading(requireActivity(), "请求中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -187,9 +187,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + DialogHub.get().showLoading(requireActivity(), "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java b/app/src/main/java/com/casic/dcms/utils/DialogHelper.java deleted file mode 100644 index 0c4fbf3..0000000 --- a/app/src/main/java/com/casic/dcms/utils/DialogHelper.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.casic.dcms.utils; - -import android.app.Activity; -import android.content.Context; -import android.view.WindowManager; - -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; - -public class DialogHelper { - private static QMUITipDialog loadingDialog; - - public static void showLoadingDialog(Context context, String message) { - loadingDialog = new QMUITipDialog.Builder(context) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord(message) - .create(); - if (!((Activity) context).isDestroyed()) { - try { - loadingDialog.show(); - } catch (WindowManager.BadTokenException e) { - e.printStackTrace(); - } - } - } - - public static void dismissLoadingDialog() { - if (loadingDialog.isShowing()) { - loadingDialog.dismiss(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/utils/DialogHub.java b/app/src/main/java/com/casic/dcms/utils/DialogHub.java new file mode 100644 index 0000000..1ab4578 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/utils/DialogHub.java @@ -0,0 +1,43 @@ +package com.casic.dcms.utils; + +import android.app.Activity; +import android.view.WindowManager; + +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; + +public class DialogHub { + + private DialogHub() { + } + + private static final class DialogHubHolder { + private static final DialogHub hub = new DialogHub(); + } + + /** + * 双重锁单例 + */ + public static DialogHub get() { + return DialogHubHolder.hub; + } + + private QMUITipDialog loadingDialog; + + public void showLoading(Activity activity, String message) { + loadingDialog = new QMUITipDialog.Builder(activity) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord(message) + .create(); + if (!activity.isDestroyed()) { + try { + loadingDialog.show(); + } catch (WindowManager.BadTokenException e) { + e.printStackTrace(); + } + } + } + + public void dismissLoading() { + loadingDialog.dismiss(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java index bc5e09a..9faa4ca 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -179,9 +179,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java index 691dfd5..0db5b33 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseProcessActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseProcessBinding; import com.casic.dcms.model.CaseProcessBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CommonDataViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseProcessActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java index 2202372..939d7e1 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseSearchResultActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseListBinding; import com.casic.dcms.model.CaseSearchResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.CaseViewModel; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; @@ -128,9 +128,9 @@ public void onChanged(LoadState loadState) { if (!isRefresh && !isLoadMore) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷查询中,请稍后"); + DialogHub.get().showLoading(CaseSearchResultActivity.this, "案卷查询中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } } diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java index 1340c12..70a28b6 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityCaseTodoDetailBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.ComSentenceBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseOperateViewModel; @@ -132,9 +132,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -196,13 +196,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷督办中,请稍后..."); + DialogHub.get().showLoading(CaseTodoDetailActivity.this, "案卷督办中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "督办失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java index c7d281c..3058391 100644 --- a/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/CaseTodoHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseTodoHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.CaseViewModel; @@ -130,9 +130,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseTodoHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java index 95db287..1153efb 100644 --- a/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/ChangePasswordActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPasswordBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.UserViewModel; @@ -170,9 +170,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "密码修改中,请稍后"); + DialogHub.get().showLoading(ChangePasswordActivity.this, "密码修改中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/LoginActivity.java b/app/src/main/java/com/casic/dcms/view/LoginActivity.java index 45a3c30..50ab5a6 100644 --- a/app/src/main/java/com/casic/dcms/view/LoginActivity.java +++ b/app/src/main/java/com/casic/dcms/view/LoginActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.model.LoginResultBean; import com.casic.dcms.model.PublicKeyBean; import com.casic.dcms.utils.AuthenticationHelper; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.RSAUtils; import com.casic.dcms.vm.AuthenticateViewModel; @@ -45,9 +45,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "登录中,请稍后"); + DialogHub.get().showLoading(LoginActivity.this, "登录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java index 857866b..cb1302f 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.databinding.ActivityBridgeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.BridgeConfigBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -64,9 +64,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后"); + DialogHub.get().showLoading(BridgeMaintainActivity.this, "养护记录签到中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java index 55e5936..ada9268 100644 --- a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java +++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityMaintainRecordBinding; import com.casic.dcms.model.MaintainRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.vm.BridgeViewModel; import com.casic.dcms.widgets.RangeDateActionSheet; import com.gyf.immersionbar.ImmersionBar; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(MaintainRecordActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 21a40be..70d7d4e 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; @@ -10,6 +13,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.lifecycle.Observer; @@ -18,6 +22,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityChangeShopBinding; import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -33,6 +38,8 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; import java.io.File; import java.util.ArrayList; @@ -48,6 +55,7 @@ private String merchantId; //商户id private String merchantName; private EditableImageAdapter imageAdapter; + private WeakReferenceHandler weakReferenceHandler; //新版onActivityResult private final ActivityResultLauncher changeShopInfoLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @@ -79,18 +87,55 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(ChangeShopInfoActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + shopViewModel.changeResultModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + StringHub.show(context, "提交成功"); + finish(); + } else { + StringHub.show(context, "提交失败,请重试"); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); shopViewModel = new ViewModelProvider(this).get(ShopViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060501) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override protected void initEvent() { viewBinding.shopLayout.setOnClickListener(new View.OnClickListener() { @@ -105,15 +150,29 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060501; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -138,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -159,32 +214,24 @@ return; } if (StringHub.isPhoneNumber(phoneNumber)) { - String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopLocation)) { - StringHub.show(context, "店铺地址还未填写"); - return; - } - String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); - if (TextUtils.isEmpty(shopKeeper)) { - StringHub.show(context, "店主名还未填写"); - return; - } - shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList) - ); - } else { StringHub.show(context, "电话号码格式不对"); + return; } - } - }); - shopViewModel.changeResultModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.getCode() == 200) { - StringHub.show(context, "提交成功"); - finish(); - } else { - StringHub.show(context, "提交失败,请重试"); + String shopLocation = viewBinding.shopLocationView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopLocation)) { + StringHub.show(context, "店铺地址还未填写"); + return; } + String shopKeeper = viewBinding.shopKeeperView.getText().toString().trim().replace(" ", ""); + if (TextUtils.isEmpty(shopKeeper)) { + StringHub.show(context, "店主名还未填写"); + return; + } + if (imageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } + shopViewModel.changeShopInfo(merchantId, merchantName, shopKeeper, phoneNumber, StringHelper.reformatURL(imageList)); } }); } diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java index d8439f9..b4a4d43 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageHandledDetailActivity.java @@ -11,7 +11,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityPackageHandledBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(PackageHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d401167..28d7a9d 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.business; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -13,7 +17,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -60,6 +65,7 @@ private String caseReason; private boolean isAddHandleImage = false;//区分是添加处理图片还是添加处罚图片 private String id;//案卷id + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,33 @@ @Override protected void observeRequestState() { + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(PackageTodoDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); } @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -86,11 +114,11 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); //案卷处理adapter,默认加载之前的处理图,但是依旧可以处理,然后显示最新的图 - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.handleImageRecyclerView.setAdapter(handleImageAdapter); //处罚adapter - punishImageAdapter = new EditableImageAdapter(this, 3, 3); + punishImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addPunishImageRecyclerView.setAdapter(punishImageAdapter); } @@ -174,16 +202,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -279,26 +297,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { + String url = resultBean.getData(); if (isAddHandleImage) { //处理图片 - if (handleImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - handleImageList.add(url); - handleRealPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(handleRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + handleImageList.add(url); + handleRealPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(handleRealPaths); } else { //处罚图片 - if (punishImageAdapter.getItemCount() <= 2) { - String url = resultBean.getData(); - punishImageList.add(url); - punishRealPaths.add(StringHelper.appendCompleteURL(url)); - punishImageAdapter.setupImage(punishRealPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + punishImageList.add(url); + punishRealPaths.add(StringHelper.appendCompleteURL(url)); + punishImageAdapter.setupImage(punishRealPaths); } } } @@ -323,20 +332,48 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060502; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060502) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + /** * 案卷提交。先提交普通案卷流程,成功后再自动提交三包处罚 */ @@ -372,6 +409,8 @@ return; } } + + //TODO 未完 // caseViewModel.handleOvertimeCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), // changeState, caseReason, StringHelper.reformatURL(handleImageList), approvalResult); } diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index d11d964..f9b38c9 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.check; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -35,6 +39,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -57,6 +62,7 @@ private String changeState; private EditableImageAdapter checkImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -73,9 +79,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -84,9 +90,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -95,13 +101,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核查中,请稍后..."); + DialogHub.get().showLoading(CheckDetailActivity.this, "案卷核查中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核查失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -109,6 +115,8 @@ @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -215,14 +223,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (checkImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - checkImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + checkImageAdapter.setupImage(realPaths); } } }); @@ -256,7 +260,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - checkImageAdapter = new EditableImageAdapter(this, 3, 3); + checkImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(checkImageAdapter); } @@ -273,15 +277,29 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060503; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -324,6 +342,10 @@ StringHub.show(context, "核查情况还未选择"); return; } + if (checkImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.checkCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList) @@ -332,6 +354,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060503) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + @Override public void onDestroy() { viewBinding.audioPlayerView.release(); diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java index 9ad1466..18019ed 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCheckedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CheckedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java index ac02cb4..1765c7a 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAdjustDetailActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -167,9 +167,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -265,13 +265,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAdjustDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java index f429e82..e3f4600 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptAuthorizeDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; @@ -173,9 +173,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -336,13 +336,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptAuthorizeDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java index 4a688e9..92a578b 100644 --- a/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/department/DeptTodoDetailActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.ProcessPersonBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -169,9 +169,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -266,13 +266,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); + DialogHub.get().showLoading(DeptTodoDetailActivity.this, "案卷处理中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 95831ec..c1e2dd0 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.view.handle; import android.content.Context; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -15,7 +19,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseDetailBean; import com.casic.dcms.model.CaseNextNodeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -34,6 +38,7 @@ import com.pengxh.androidx.lite.hub.IntHub; import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder; @@ -59,6 +64,7 @@ private String approvalResult; private EditableImageAdapter handleImageAdapter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private WeakReferenceHandler weakReferenceHandler; @Override protected void setupTopBarLayout() { @@ -72,11 +78,48 @@ @Override protected void observeRequestState() { + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "获取数据中..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); + } + } + }); + + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(CaseHandleDetailActivity.this, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + DialogHub.get().dismissLoading(); + finish(); + } else { + StringHub.show(context, "处理失败,请重试"); + DialogHub.get().dismissLoading(); + } + } + }); } @Override protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra("id"); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); @@ -85,7 +128,7 @@ nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - handleImageAdapter = new EditableImageAdapter(this, 3, 3); + handleImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(handleImageAdapter); } @@ -157,16 +200,6 @@ } } }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override @@ -218,15 +251,29 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060504; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -251,24 +298,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (handleImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - handleImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } - } - } - }); - uploadViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + handleImageAdapter.setupImage(realPaths); } } }); @@ -284,7 +317,7 @@ if (handleResult.equals("处理完成")) { //选择处理完成时,处理图片必传。至少一张,最多两张 if (handleImageAdapter.getItemCount() < 1) { - StringHub.show(context, "当前案卷状态必须上传至少一张图片"); + StringHub.show(context, "至少上传一张照片"); return; } } @@ -301,20 +334,20 @@ ); } }); - operateViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷处理中,请稍后..."); - } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); - finish(); - } else { - StringHub.show(context, "处理失败,请重试"); - DialogHelper.dismissLoadingDialog(); - } + } + + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060504) { + handleSelectResult((LocalMedia) msg.obj); } - }); + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); } @Override diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java index 7b0a864..bc4c9c1 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandledDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCaseHandledDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -156,9 +156,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(CaseHandledDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java index 7baaaf5..c6fee00 100644 --- a/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/ArcGISMapActivity.java @@ -18,7 +18,7 @@ import com.casic.dcms.model.PointFutureBean; import com.casic.dcms.model.ShopFeatureBean; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.HttpRequestHelper; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; @@ -293,11 +293,11 @@ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); - DialogHelper.showLoadingDialog(context, "查询商户信息中,请稍后"); + DialogHub.get().showLoading(ArcGISMapActivity.this, "查询商户信息中,请稍后"); HttpRequestHelper.doRequest(LocaleConstant.SHOP_MERCHANT_ID, featureBean.getObjid(), new IHttpRequestListener() { @Override public void onSuccess(ResponseBody resultBean) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); try { JSONObject jsonObject = new JSONObject(resultBean.string()); JSONObject data = jsonObject.getJSONObject("data"); @@ -477,7 +477,7 @@ } else if (id == R.id.minusMapView) { viewBinding.mapView.setViewpointScaleAsync(viewBinding.mapView.getMapScale() * 2); } else if (id == R.id.removeToLocalView) { - DialogHelper.showLoadingDialog(this, "定位中,请稍后"); + DialogHub.get().showLoading(this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(this, new ILocationListener() { @Override @@ -487,7 +487,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }, true); diff --git a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java index 5bd7e85..0d6aac3 100644 --- a/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/DisplayMapActivity.java @@ -10,7 +10,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityGisBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -94,7 +94,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(DisplayMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -103,7 +103,7 @@ Point point = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(point); viewBinding.mapView.setViewpointCenterAsync(point, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java index ab7d389..58588c5 100644 --- a/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java +++ b/app/src/main/java/com/casic/dcms/view/map/WorkerOnMapActivity.java @@ -15,7 +15,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityWorkerMapBinding; import com.casic.dcms.utils.ArcGisMapCreator; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.callback.ILocationListener; @@ -135,7 +135,7 @@ viewBinding.removeToLocalView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - DialogHelper.showLoadingDialog(context, "定位中,请稍后"); + DialogHub.get().showLoading(WorkerOnMapActivity.this, "定位中,请稍后"); LocationHelper.obtainCurrentLocation(context, new ILocationListener() { @Override @@ -144,7 +144,7 @@ Point p = new Point(gcjToWgs[0], gcjToWgs[1], SpatialReferences.getWgs84()); addPictureMarker(p); viewBinding.mapView.setViewpointCenterAsync(p, 2800.0); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } }, true); } diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java index 1b1c5df..45db716 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityPipeBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.view.map.WarningOnMapActivity; import com.casic.dcms.vm.AlarmViewModel; @@ -91,9 +91,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PipelineManagerActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java index a4fc663..2eefbb5 100644 --- a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.databinding.ActivityWellListBinding; import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.vm.WellViewModel; @@ -85,9 +85,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(WellListActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java index 9c0cee4..4a4dd3c 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CaseResourceActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.CaseResourceBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CaseResourceActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java index a91ef9c..3a54f3e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/CityBaseDataActivity.java @@ -8,7 +8,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCityBaseDataBinding; import com.casic.dcms.model.CityBaseDataBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -46,9 +46,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(CityBaseDataActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java index 2d6b5df..62f246d 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/DeptHandleConditionActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.DeptHandleConditionBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -59,9 +59,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(DeptHandleConditionActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java index f1989f9..6b18f6b 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/GridAnalysisActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.databinding.ActivityGridAnalysisBinding; import com.casic.dcms.model.GridAnalysisBean; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -89,9 +89,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(GridAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java index 6de86c2..023c399 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/HighEventActivity.java @@ -12,7 +12,7 @@ import com.casic.dcms.model.HighEventBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -58,9 +58,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(HighEventActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java index 8b1e7e4..bd187d5 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/PunishAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.PunishTypeStatisticBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -95,9 +95,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(PunishAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java index f218d1a..77b503e 100644 --- a/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java +++ b/app/src/main/java/com/casic/dcms/view/statistics/TrendAnalysisActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.model.CaseTendencyBean; import com.casic.dcms.utils.ChartViewHelper; import com.casic.dcms.utils.ColorHub; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.TimeOrDateUtil; import com.casic.dcms.vm.DataAnalysisViewModel; @@ -54,9 +54,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + DialogHub.get().showLoading(TrendAnalysisActivity.this, "数据加载中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java index 282a3bf..1172268 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/CleaningRecordsActivity.java @@ -14,7 +14,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityCleanRecordsBinding; import com.casic.dcms.model.CleanRecordBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.IAddressListener; @@ -94,9 +94,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "查询记录中,请稍后"); + DialogHub.get().showLoading(CleaningRecordsActivity.this, "查询记录中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java index d2b6d4d..ee607a0 100644 --- a/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/view/toilet/PublicToiletActivity.java @@ -20,7 +20,7 @@ import com.casic.dcms.model.ToiletListModel; import com.casic.dcms.utils.ArcGisMapCreator; import com.casic.dcms.utils.DataBaseManager; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.LocationHelper; import com.casic.dcms.utils.PictureSelectorHelper; @@ -267,9 +267,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(PublicToiletActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); TextPaint textPaint = viewBinding.showPictureView.getPaint(); textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 textPaint.setAntiAlias(true);//抗锯齿 @@ -335,9 +335,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后"); + DialogHub.get().showLoading(PublicToiletActivity.this, "处理中,请稍后"); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 7d60cb0..34e9e46 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -23,7 +23,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -63,6 +63,7 @@ private String typeCode = ""; private String typeDetailCode = "";//默认值,防止用户不选择直接跳过 private String gridId; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -108,14 +109,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -124,16 +125,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(BriefCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -168,19 +167,15 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -293,18 +288,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060301; @@ -381,7 +376,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index cef73f8..9663e5a 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -21,7 +21,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityBusinessCaseBinding; import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.utils.callback.ISelectorListener; @@ -53,6 +53,7 @@ private CaseViewModel caseViewModel; private EditableImageAdapter imageAdapter; private String gridId, shopID; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -102,21 +103,30 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(BusinessCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); + } + } + }); + + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHub.get().showLoading(BusinessCaseActivity.this, "上传中,请稍后..."); + } else { + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { weakReferenceHandler = new WeakReferenceHandler(callback); @@ -126,21 +136,17 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -161,18 +167,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1000); + new CountDownTimer(sum, 1000) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1000); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060302; @@ -251,7 +257,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index 55ee5c0..25fa578 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -36,7 +36,7 @@ import com.casic.dcms.model.ActionResultBean; import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.FileUtils; import com.casic.dcms.utils.LocaleConstant; import com.casic.dcms.utils.PictureSelectorHelper; @@ -94,6 +94,7 @@ private String gridId; private String audioUrl, videoUrl; private boolean isFirstEnter = true; + private WeakReferenceHandler weakReferenceHandler; private final Handler.Callback callback = new Handler.Callback() { @Override public boolean handleMessage(@NonNull Message msg) { @@ -139,14 +140,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -155,16 +156,14 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(CommonCaseActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); } - private WeakReferenceHandler weakReferenceHandler; - @Override public void initData() { largeTypeBeans = new ArrayList<>(); @@ -198,14 +197,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.getCode() == 200) { - if (imageAdapter.getItemCount() <= 4) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - imageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + imageAdapter.setupImage(realPaths); } } }); @@ -267,7 +262,7 @@ viewBinding.addVideoView.setLayoutParams(params); //图片九宫格 - imageAdapter = new EditableImageAdapter(this, 3, 3); + imageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(imageAdapter); } @@ -551,18 +546,18 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { handleSelectResult(result.get(0)); } else { - int sum = (result.size() * 500); - new CountDownTimer(sum, 500) { + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { @Override public void onTick(long millisUntilFinished) { - int i = (int) (millisUntilFinished / 500); + int i = (int) (millisUntilFinished / 1500); Message message = weakReferenceHandler.obtainMessage(); message.obj = result.get(i); message.what = 2023060303; @@ -639,7 +634,7 @@ StringHub.show(this, "案卷情况还未填写"); return; } - if (imageList.size() < 1) { + if (imageAdapter.getItemCount() < 1) { StringHub.show(this, "至少上传一张图片"); return; } diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java index b2d894a..a41dce3 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifiedDetailActivity.java @@ -13,7 +13,7 @@ import com.casic.dcms.R; import com.casic.dcms.databinding.ActivityVerifiedDetailBinding; import com.casic.dcms.model.CaseDetailBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.BigImageActivity; @@ -53,9 +53,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifiedDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 45c3684..5b31547 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -3,6 +3,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; +import android.os.CountDownTimer; +import android.os.Handler; +import android.os.Message; import android.text.TextUtils; import android.view.View; import android.widget.AdapterView; @@ -11,6 +14,7 @@ import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; @@ -23,7 +27,7 @@ import com.casic.dcms.model.CaseLargeTypeBean; import com.casic.dcms.model.CaseNextNodeBean; import com.casic.dcms.model.CaseSmallTypeBean; -import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.DialogHub; import com.casic.dcms.utils.MapHelper; import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; @@ -45,6 +49,7 @@ import com.pengxh.androidx.lite.hub.StringHub; import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; import com.pengxh.androidx.lite.vm.LoadState; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; @@ -75,6 +80,7 @@ private String changeState; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private EditableImageAdapter verifyImageAdapter; + private WeakReferenceHandler weakReferenceHandler; private final ActivityResultLauncher verifyCaseLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback() { @Override @@ -114,9 +120,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "获取数据中..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "获取数据中..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -125,9 +131,9 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "上传中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "上传中,请稍后..."); } else { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -136,13 +142,13 @@ @Override public void onChanged(LoadState loadState) { if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "案卷核实中,请稍后..."); + DialogHub.get().showLoading(VerifyDetailActivity.this, "案卷核实中,请稍后..."); } else if (loadState == LoadState.Success) { - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); finish(); } else { StringHub.show(context, "核实失败,请重试"); - DialogHelper.dismissLoadingDialog(); + DialogHub.get().dismissLoading(); } } }); @@ -150,6 +156,8 @@ @Override public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); largeTypeBeans = new ArrayList<>(); @@ -277,14 +285,10 @@ @Override public void onChanged(ActionResultBean resultBean) { if (resultBean.isSuccess()) { - if (verifyImageAdapter.getItemCount() <= 3) { - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - verifyImageAdapter.setupImage(realPaths); - } else { - StringHub.show(context, "最多只能上传3张图片"); - } + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + verifyImageAdapter.setupImage(realPaths); } } }); @@ -318,7 +322,7 @@ operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); - verifyImageAdapter = new EditableImageAdapter(this, 3, 3); + verifyImageAdapter = new EditableImageAdapter(this, 2, 3); viewBinding.addImageRecyclerView.setAdapter(verifyImageAdapter); } @@ -424,15 +428,29 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 2, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { - uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + handleSelectResult(result.get(0)); } else { - for (LocalMedia localMedia : result) { - uploadViewModel.uploadImage(new File(localMedia.getRealPath())); - } + int sum = (result.size() * 1500); + new CountDownTimer(sum, 1500) { + + @Override + public void onTick(long millisUntilFinished) { + int i = (int) (millisUntilFinished / 1500); + Message message = weakReferenceHandler.obtainMessage(); + message.obj = result.get(i); + message.what = 2023060505; + weakReferenceHandler.handleMessage(message); + } + + @Override + public void onFinish() { + + } + }.start(); } } }); @@ -462,6 +480,20 @@ }); } + private final Handler.Callback callback = new Handler.Callback() { + @Override + public boolean handleMessage(@NonNull Message msg) { + if (msg.what == 2023060505) { + handleSelectResult((LocalMedia) msg.obj); + } + return true; + } + }; + + private void handleSelectResult(LocalMedia obj) { + uploadViewModel.uploadImage(new File(obj.getRealPath())); + } + private void submitCase() { String remarks = viewBinding.caseConditionView.getText().toString(); if (TextUtils.isEmpty(remarks)) { @@ -491,6 +523,10 @@ StringHub.show(this, "经纬度异常,请重新选择位置"); return; } + if (verifyImageAdapter.getItemCount() < 1) { + StringHub.show(context, "至少上传一张照片"); + return; + } operateViewModel.verifyCase(data.getProcessId(), id, String.valueOf(data.getCaseState()), changeState, remarks, StringHelper.reformatURL(imageList), eorc == null ? data.getEorc() : eorc, diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java index 63e2e14..05f9edb 100644 --- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java @@ -54,6 +54,7 @@ AlarmDataBean alarmDataBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(alarmDataBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java index 8d07ec5..b082549 100644 --- a/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/BridgeViewModel.java @@ -54,6 +54,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); submitResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -93,6 +94,7 @@ MaintainRecordBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); recordModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java index f5f4994..35a0f49 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseOperateViewModel.java @@ -57,6 +57,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); verifyActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -96,6 +97,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); checkActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -135,6 +137,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); overtimeActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -169,7 +172,6 @@ }.getType()); shopActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -210,6 +212,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -248,6 +252,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -284,6 +290,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateSuperviseActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -323,6 +330,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index e85bd61..68175d8 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -311,6 +311,7 @@ CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -353,6 +354,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -391,6 +394,8 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); + } else { + loadState.setValue(LoadState.Success); } } catch (IOException e) { e.printStackTrace(); @@ -427,6 +432,7 @@ CaseDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); caseDetailModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java index d7cc435..2610e00 100644 --- a/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CommonDataViewModel.java @@ -180,6 +180,7 @@ CaseProcessBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseProcessModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java index 3ff0a07..cb588b8 100644 --- a/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/DataAnalysisViewModel.java @@ -66,6 +66,7 @@ CityBaseDataBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cityBaseData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -105,6 +106,7 @@ CaseResourceBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseResourceData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -144,6 +146,7 @@ HighEventBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); highEventModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -183,6 +186,7 @@ DeptHandleConditionBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); deptHandleConditionModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -222,6 +226,7 @@ GridAnalysisBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); gridAnalysisData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -261,6 +266,7 @@ CaseTendencyBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); caseTendencyData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -300,6 +306,7 @@ PunishTypeStatisticBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); typeStatisticData.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java index 8a1df46..553fc98 100644 --- a/app/src/main/java/com/casic/dcms/vm/LightViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/LightViewModel.java @@ -89,6 +89,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); lightControlModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java index 6da4d81..0d0b9d4 100644 --- a/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ShopViewModel.java @@ -52,6 +52,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changeResultModel.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java index 5bbd924..f455837 100644 --- a/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/ToiletViewModel.java @@ -86,6 +86,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanToiletModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -125,6 +126,7 @@ CleanRecordBean listBean = gson.fromJson(response, new TypeToken() { }.getType()); cleanRecordModel.setValue(listBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java index 73ba9b8..cb65e04 100644 --- a/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UploadViewModel.java @@ -96,6 +96,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); imageModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); } @@ -141,6 +142,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); audioModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -180,6 +182,7 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); videoModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 341f504..c1fa7f0 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -98,6 +98,7 @@ LoginResultBean loginResultBean = gson.fromJson(response, new TypeToken() { }.getType()); loginResult.setValue(loginResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -167,6 +168,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); changePwdResult.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -206,6 +208,7 @@ ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { }.getType()); updateResult.setValue(actionResultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java b/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java index 12f5ead..96c9e18 100644 --- a/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/VersionViewModel.java @@ -52,6 +52,7 @@ NewVersionBean versionBean = gson.fromJson(response, new TypeToken() { }.getType()); versionModel.setValue(versionBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); diff --git a/app/src/main/java/com/casic/dcms/vm/WellViewModel.java b/app/src/main/java/com/casic/dcms/vm/WellViewModel.java index 5094030..ff084c4 100644 --- a/app/src/main/java/com/casic/dcms/vm/WellViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/WellViewModel.java @@ -56,6 +56,7 @@ WellListBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); listModel.setValue(resultBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); @@ -95,6 +96,7 @@ WellDetailBean detailBean = gson.fromJson(response, new TypeToken() { }.getType()); resultModel.setValue(detailBean); + loadState.setValue(LoadState.Success); } else { loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response);