diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/build.gradle b/app/build.gradle index 68f1bf0..9a6d2a1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,7 +84,7 @@ //图片选择框架 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0' //视频播放器 - implementation 'fm.jiecao:jiecaovideoplayer:5.5.4' + implementation 'cn.jzvd:jiaozivideoplayer:7.6.0' //ArcGIS implementation 'com.esri.arcgisruntime:arcgis-android:100.10.0' //上拉加载下拉刷新 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5792e20..6a982c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,6 @@ - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - - - - - - @@ -64,7 +63,6 @@ - @@ -76,16 +74,48 @@ - - - - - - - - + + + + + + + + + + dialog.dismiss()) - .addAction("确定", new QMUIDialogAction.ActionListener() { - @Override - public void onClick(QMUIDialog dialog, int index) { - dialog.dismiss(); - Intent intent = new Intent(); - intent.putExtra("shopName", shopName); - intent.putExtra("shopID", shopID); - intent.putExtra("latitude", clickPoint.getY()); - intent.putExtra("longitude", clickPoint.getX()); - intent.putExtra("community", communityName); - intent.putExtra("gridId", gridId); - setResult(RESULT_OK, intent); - finish(); - } - }) - .create().show(); + if (!this.isFinishing()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("已选择商户:" + shopName + "\r\n确认提交?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + Intent intent = new Intent(); + intent.putExtra("shopName", shopName); + intent.putExtra("shopID", shopID); + intent.putExtra("latitude", clickPoint.getY()); + intent.putExtra("longitude", clickPoint.getX()); + intent.putExtra("community", communityName); + intent.putExtra("gridId", gridId); + setResult(RESULT_OK, intent); + finish(); + } + }) + .create().show(); + } } /** diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index b29da14..f46d446 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -56,7 +56,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.caseCheckOptView) @@ -270,8 +271,8 @@ caseLargeTypeView.setText(data.getCasetypeName()); caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName().equals("") ? "无更详细社区信息" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro().trim().replace(" ", "")); - caseSituationView.setText(data.getDescription().trim().replace(" ", "")); + casePlaceView.setText(StringHelper.filterString(data.getFieldintro())); + caseSituationView.setText(StringHelper.filterString(data.getDescription())); caseHandleView.setText(data.getProcessRemarks().equals("") ? "无" : data.getProcessRemarks()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); @@ -331,13 +332,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } //处理照片 @@ -496,4 +496,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java index c4f6913..7c9c517 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseCheckedDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -246,13 +247,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -274,4 +274,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java index 0397912..1d57528 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -34,7 +34,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -66,7 +67,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.handleRecordLayout) RelativeLayout handleRecordLayout; @@ -220,13 +221,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -275,4 +275,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java index d188e8d..5be798d 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -60,7 +60,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseNextNodeView, IUploadFileView, ICaseHandleView { @@ -87,7 +88,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseStartTimeView) TextView caseStartTimeView; @BindView(R.id.caseEndTimeView) @@ -221,13 +222,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } caseStartTimeView.setText(data.getCreateTime()); @@ -500,4 +500,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java index f5992a8..4880448 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private CaseDetailPresenterImpl caseDetailPresenter; @@ -190,13 +191,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -247,4 +247,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java index 50e2b6b..7d4a7d4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -42,7 +42,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseHandleResultView) TextView caseHandleResultView; @BindView(R.id.caseCommonSentenceView) @@ -219,13 +220,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -305,4 +305,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java index 23dd4ee..6b85509 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoHandledDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseTodoHandledDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -63,7 +64,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); @@ -166,13 +167,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -223,4 +223,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 982a3e4..e65fa0a 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -73,8 +73,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseUploadActivity extends BaseCaseActivity implements View.OnClickListener, View.OnTouchListener, ICaseLargeClassView, ICaseSmallClassView, ICaseSubmitCaseView, IUploadFileView { @@ -105,7 +105,7 @@ @BindView(R.id.addVideoView) ImageView addVideoView; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.addImageView) ImageView addImageView; @BindView(R.id.selectedResultView) @@ -561,7 +561,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); imageList.add(url); @@ -603,13 +603,12 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); String completeURL = StringHelper.appendCompleteURL(videoUrl); - videoPlayerView.setUp(completeURL, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(completeURL, ""); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(completeURL) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } @@ -709,7 +708,7 @@ @Override public void onBackPressed() { - if (JCVideoPlayer.backPress()) { + if (Jzvd.backPress()) { return; } super.onBackPressed(); @@ -718,6 +717,6 @@ @Override protected void onPause() { super.onPause(); - JCVideoPlayer.releaseAllVideos(); + Jzvd.releaseAllVideos(); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java index ce71414..253c2ab 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -350,7 +350,7 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { imageList.add(url); realPaths.add(StringHelper.appendCompleteURL(url)); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java index e3ed29f..723274c 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifiedDetailActivity.java @@ -33,7 +33,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifiedDetailActivity extends BaseActivity implements ICaseDetailView, View.OnClickListener { @@ -65,7 +66,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; private CaseDetailPresenterImpl caseDetailPresenter; private MediaPlayer mediaPlayer; @@ -169,13 +170,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -219,4 +219,18 @@ public void obtainDataFail() { ToastHelper.showToast("获取案卷详情失败", ToastHelper.ERROR); } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 033172f..f83e281 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -64,7 +64,8 @@ import butterknife.BindView; import butterknife.OnClick; -import fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard; +import cn.jzvd.Jzvd; +import cn.jzvd.JzvdStd; public class CaseVerifyDetailActivity extends BaseCaseActivity implements ICaseDetailView, View.OnClickListener, ICaseLargeClassView, ICaseSmallClassView, IUploadFileView, ICaseNextNodeView, ICaseHandleView { @@ -95,7 +96,7 @@ @BindView(R.id.caseAudioButton) QMUIRoundButton caseAudioButton; @BindView(R.id.videoPlayerView) - JCVideoPlayerStandard videoPlayerView; + JzvdStd videoPlayerView; @BindView(R.id.caseOpinionView) TextView caseOpinionView; @BindView(R.id.caseConditionView) @@ -268,13 +269,12 @@ if (!TextUtils.isEmpty(audioFile)) { videoPlayerView.setVisibility(View.VISIBLE); String videoUrl = StringHelper.appendCompleteURL(videoFile); - videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + videoPlayerView.setUp(videoUrl, StringHelper.filterString(data.getDescription())); //设置第一帧为封面 Glide.with(this) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) .load(videoUrl) - .into(videoPlayerView.thumbImageView); + .into(videoPlayerView.posterImageView); } } } @@ -673,4 +673,18 @@ mediaPlayer = null; } } + + @Override + public void onBackPressed() { + if (Jzvd.backPress()) { + return; + } + super.onBackPressed(); + } + + @Override + protected void onPause() { + super.onPause(); + Jzvd.releaseAllVideos(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 8722cf6..42028a8 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -156,6 +156,9 @@ * 供{@link com.casic.dcms.service.UploadLocationService#onCreate()}页面调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } @@ -163,6 +166,9 @@ * 供{@link MinePageFragment#obtainLoginOutResult(ActionResultBean)}页面调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java index 6e131c9..d78f2f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -44,8 +44,8 @@ import butterknife.BindView; import butterknife.OnClick; -public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener - , IUploadFileView, ICaseSubmitCaseView { +public class ThreePackageUploadActivity extends BaseCaseActivity implements View.OnClickListener, + IUploadFileView, ICaseSubmitCaseView { private Context context = ThreePackageUploadActivity.this; @BindView(R.id.shopView) @@ -290,7 +290,7 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + int sumItemCount = imageAdapter.getItemCount() + 1;//每上传一张图片,图片总数都是在原有的基础上+1 if (sumItemCount <= 2) { String url = resultBean.getData(); mediaList.add(url); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java index f01637b..6bca509 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/MinePageFragment.java @@ -1,15 +1,19 @@ package com.casic.dcms.ui.fragment; import android.app.ProgressDialog; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; +import android.util.Log; import android.view.View; import android.widget.CompoundButton; import android.widget.Switch; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import com.casic.dcms.BuildConfig; @@ -48,6 +52,8 @@ TextView versionCodeView; @BindView(R.id.autoLoginSwitch) Switch autoLoginSwitch; + @BindView(R.id.backWorkSwitch) + Switch backWorkSwitch; @BindView(R.id.loginOutButton) QMUIRoundButton loginOutButton; @@ -94,6 +100,46 @@ SaveKeyValues.putValue("autoLogin", isChecked); } }); + backWorkSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (isChecked) { + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("要允许应用运行在后台吗?") + .setMessage("允许[移动城管]运行在后台可能会缩短电池续航时间" + "\r\n您以后可以在手机[设置]中更改此设置") + .setCanceledOnTouchOutside(true) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + //根据不同手机打开设置界面 + } + }) + .create().show(); + } else { + Log.d(TAG, "onCheckedChanged: 关闭低电量运行"); + } + } + }); + } + + private void startSettingsActivity(@NonNull String packageName) { + Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); + startActivity(intent); + } + + private void startSettingsActivity(@NonNull String packageName, @NonNull String activityDir) { + Intent intent = new Intent(); + intent.setComponent(new ComponentName(packageName, activityDir)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivityForResult(intent, 0); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + } @OnClick({R.id.userNameLayout, R.id.passwordLayout, R.id.helpfulLayout, R.id.updateVersionView, R.id.loginOutButton}) diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 18abe0c..4d84e64 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -126,6 +126,9 @@ * 供{@link com.casic.dcms.service.GeTuiIntentService#onReceiveMessageData(Context, GTTransmitMessage)}调用 */ public static void sendMessage(Message msg) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendMessage(msg); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java index ea69f85..7e736dd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java index 88d1a44..a9a3a79 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/check/CaseCheckedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseCheckDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index fe1d2f8..9b74097 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -94,6 +94,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index d220fd3..c8f3bd5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 39f3a97..7227dfd 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index 1f6d349..b0ab4f5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -98,6 +98,9 @@ * 供{@link com.casic.dcms.ui.CaseHandleDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java index 476c594..eef7916 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 7ddf465..69ad1e0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java index 3bd8974..b329bb5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseHandledFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 3acab6a..0bc1b46 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -95,6 +95,9 @@ * 供{@link com.casic.dcms.ui.CaseTodoDetailActivity#obtainUpdateSuperviseData(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java index 691358a..e7af03b 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifiedFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java index 6cb24ae..e77db43 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/verify/CaseVerifyFragment.java @@ -97,6 +97,9 @@ * 供{@link com.casic.dcms.ui.CaseVerifyDetailActivity#obtainCaseHandleResult(ActionResultBean)}调用 */ public static void sendEmptyMessage(int what) { + if (weakReferenceHandler == null) { + return; + } weakReferenceHandler.sendEmptyMessage(what); } diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 9fefd0e..f19698f 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -113,7 +113,7 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - - - - - - - - - - + + + + + + + + +