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 368eeb2..965cb26 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Color; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaRecorder; @@ -59,6 +60,7 @@ import com.luck.picture.lib.entity.LocalMedia; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; @@ -77,7 +79,6 @@ private static final String TAG = "CaseUploadActivity"; private Context context = this; - @BindView(R.id.leftBackView) ImageView leftBackView; @BindView(R.id.caseClassView) @@ -133,6 +134,7 @@ private String gridId; private UploadVideoPresenterImpl uploadVideoPresenter; private String audioUrl, videoUrl; + private long time = 0L; @Override public int initLayoutView() { @@ -204,7 +206,7 @@ submitButton.setChangeAlphaWhenPress(true); } - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addVideoView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addVideoView, R.id.deleteView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -292,6 +294,24 @@ .recordVideoSecond(15) .forResult(PictureConfig.PREVIEW_VIDEO_CODE); break; + case R.id.deleteView: + if (videoPlayerView.isShown()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("确定重新拍摄视频材料?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + videoPlayerView.setVisibility(View.GONE); + addVideoView.setVisibility(View.VISIBLE); + } + }) + .create().show(); + } + break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) .addItem("相册中选取", new DialogInterface.OnClickListener() { @@ -435,15 +455,23 @@ case MotionEvent.ACTION_DOWN: //按下动画 voiceView.animate().scaleX(0.75f).scaleY(0.75f).setDuration(100).start(); + time = System.currentTimeMillis(); if (mediaRecorder != null) { mediaRecorder.start(); + playAudioView.setText("正在录音..."); } break; case MotionEvent.ACTION_UP: + releaseMediaRecorder(); + if (outputFile.exists()) { + String audioPath = outputFile.getAbsolutePath(); + uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); + } else { + playAudioView.setText("录音上传失败"); + playAudioView.setTextColor(Color.RED); + } //松开动画 voiceView.animate().scaleX(1.0f).scaleY(1.0f).setDuration(100).start(); - //停止录音 - releaseMediaRecorder(); break; } return true; @@ -455,13 +483,6 @@ mediaRecorder.release(); mediaRecorder = null; } - //显示录音文件路径 - if (outputFile.exists()) { - String audioPath = outputFile.getAbsolutePath(); - uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); - } else { - caseDetailEditView.setText("录音保存失败"); - } } @Override @@ -511,7 +532,8 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setVisibility(View.VISIBLE); + playAudioView.setText("播放录音"); + playAudioView.setTextColor(Color.BLUE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -524,7 +546,6 @@ @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { - playAudioView.setText(mediaPlayer.getDuration() / 1000 + "''"); mediaPlayer.start(); } } @@ -579,7 +600,7 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); videoPlayerView.setUp(StringHelper.appendCompleteURL(videoUrl), JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.topContainer.setVisibility(View.INVISIBLE); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) 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 368eeb2..965cb26 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Color; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaRecorder; @@ -59,6 +60,7 @@ import com.luck.picture.lib.entity.LocalMedia; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; @@ -77,7 +79,6 @@ private static final String TAG = "CaseUploadActivity"; private Context context = this; - @BindView(R.id.leftBackView) ImageView leftBackView; @BindView(R.id.caseClassView) @@ -133,6 +134,7 @@ private String gridId; private UploadVideoPresenterImpl uploadVideoPresenter; private String audioUrl, videoUrl; + private long time = 0L; @Override public int initLayoutView() { @@ -204,7 +206,7 @@ submitButton.setChangeAlphaWhenPress(true); } - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addVideoView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addVideoView, R.id.deleteView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -292,6 +294,24 @@ .recordVideoSecond(15) .forResult(PictureConfig.PREVIEW_VIDEO_CODE); break; + case R.id.deleteView: + if (videoPlayerView.isShown()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("确定重新拍摄视频材料?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + videoPlayerView.setVisibility(View.GONE); + addVideoView.setVisibility(View.VISIBLE); + } + }) + .create().show(); + } + break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) .addItem("相册中选取", new DialogInterface.OnClickListener() { @@ -435,15 +455,23 @@ case MotionEvent.ACTION_DOWN: //按下动画 voiceView.animate().scaleX(0.75f).scaleY(0.75f).setDuration(100).start(); + time = System.currentTimeMillis(); if (mediaRecorder != null) { mediaRecorder.start(); + playAudioView.setText("正在录音..."); } break; case MotionEvent.ACTION_UP: + releaseMediaRecorder(); + if (outputFile.exists()) { + String audioPath = outputFile.getAbsolutePath(); + uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); + } else { + playAudioView.setText("录音上传失败"); + playAudioView.setTextColor(Color.RED); + } //松开动画 voiceView.animate().scaleX(1.0f).scaleY(1.0f).setDuration(100).start(); - //停止录音 - releaseMediaRecorder(); break; } return true; @@ -455,13 +483,6 @@ mediaRecorder.release(); mediaRecorder = null; } - //显示录音文件路径 - if (outputFile.exists()) { - String audioPath = outputFile.getAbsolutePath(); - uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); - } else { - caseDetailEditView.setText("录音保存失败"); - } } @Override @@ -511,7 +532,8 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setVisibility(View.VISIBLE); + playAudioView.setText("播放录音"); + playAudioView.setTextColor(Color.BLUE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -524,7 +546,6 @@ @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { - playAudioView.setText(mediaPlayer.getDuration() / 1000 + "''"); mediaPlayer.start(); } } @@ -579,7 +600,7 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); videoPlayerView.setUp(StringHelper.appendCompleteURL(videoUrl), JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.topContainer.setVisibility(View.INVISIBLE); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) diff --git a/app/src/main/res/drawable/ic_map.xml b/app/src/main/res/drawable/ic_map.xml index e0e5132..8fa4af8 100644 --- a/app/src/main/res/drawable/ic_map.xml +++ b/app/src/main/res/drawable/ic_map.xml @@ -1,6 +1,6 @@ dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + videoPlayerView.setVisibility(View.GONE); + addVideoView.setVisibility(View.VISIBLE); + } + }) + .create().show(); + } + break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) .addItem("相册中选取", new DialogInterface.OnClickListener() { @@ -435,15 +455,23 @@ case MotionEvent.ACTION_DOWN: //按下动画 voiceView.animate().scaleX(0.75f).scaleY(0.75f).setDuration(100).start(); + time = System.currentTimeMillis(); if (mediaRecorder != null) { mediaRecorder.start(); + playAudioView.setText("正在录音..."); } break; case MotionEvent.ACTION_UP: + releaseMediaRecorder(); + if (outputFile.exists()) { + String audioPath = outputFile.getAbsolutePath(); + uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); + } else { + playAudioView.setText("录音上传失败"); + playAudioView.setTextColor(Color.RED); + } //松开动画 voiceView.animate().scaleX(1.0f).scaleY(1.0f).setDuration(100).start(); - //停止录音 - releaseMediaRecorder(); break; } return true; @@ -455,13 +483,6 @@ mediaRecorder.release(); mediaRecorder = null; } - //显示录音文件路径 - if (outputFile.exists()) { - String audioPath = outputFile.getAbsolutePath(); - uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); - } else { - caseDetailEditView.setText("录音保存失败"); - } } @Override @@ -511,7 +532,8 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setVisibility(View.VISIBLE); + playAudioView.setText("播放录音"); + playAudioView.setTextColor(Color.BLUE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -524,7 +546,6 @@ @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { - playAudioView.setText(mediaPlayer.getDuration() / 1000 + "''"); mediaPlayer.start(); } } @@ -579,7 +600,7 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); videoPlayerView.setUp(StringHelper.appendCompleteURL(videoUrl), JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.topContainer.setVisibility(View.INVISIBLE); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) diff --git a/app/src/main/res/drawable/ic_map.xml b/app/src/main/res/drawable/ic_map.xml index e0e5132..8fa4af8 100644 --- a/app/src/main/res/drawable/ic_map.xml +++ b/app/src/main/res/drawable/ic_map.xml @@ -1,6 +1,6 @@ + android:fillColor="@color/mainThemeColor" + android:pathData="M512,704c105.6,0 192,-86.4 192,-192V256c0,-105.6 -86.4,-192 -192,-192s-192,86.4 -192,192v256c0,105.6 86.4,192 192,192z" /> + 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 368eeb2..965cb26 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Color; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaRecorder; @@ -59,6 +60,7 @@ import com.luck.picture.lib.entity.LocalMedia; import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; @@ -77,7 +79,6 @@ private static final String TAG = "CaseUploadActivity"; private Context context = this; - @BindView(R.id.leftBackView) ImageView leftBackView; @BindView(R.id.caseClassView) @@ -133,6 +134,7 @@ private String gridId; private UploadVideoPresenterImpl uploadVideoPresenter; private String audioUrl, videoUrl; + private long time = 0L; @Override public int initLayoutView() { @@ -204,7 +206,7 @@ submitButton.setChangeAlphaWhenPress(true); } - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addVideoView, R.id.addImageView, R.id.submitButton}) + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.locationMapView, R.id.addVideoView, R.id.deleteView, R.id.addImageView, R.id.submitButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -292,6 +294,24 @@ .recordVideoSecond(15) .forResult(PictureConfig.PREVIEW_VIDEO_CODE); break; + case R.id.deleteView: + if (videoPlayerView.isShown()) { + new QMUIDialog.MessageDialogBuilder(this) + .setTitle("提示") + .setMessage("确定重新拍摄视频材料?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + videoPlayerView.setVisibility(View.GONE); + addVideoView.setVisibility(View.VISIBLE); + } + }) + .create().show(); + } + break; case R.id.addImageView: new QMUIDialog.MenuDialogBuilder(this) .addItem("相册中选取", new DialogInterface.OnClickListener() { @@ -435,15 +455,23 @@ case MotionEvent.ACTION_DOWN: //按下动画 voiceView.animate().scaleX(0.75f).scaleY(0.75f).setDuration(100).start(); + time = System.currentTimeMillis(); if (mediaRecorder != null) { mediaRecorder.start(); + playAudioView.setText("正在录音..."); } break; case MotionEvent.ACTION_UP: + releaseMediaRecorder(); + if (outputFile.exists()) { + String audioPath = outputFile.getAbsolutePath(); + uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); + } else { + playAudioView.setText("录音上传失败"); + playAudioView.setTextColor(Color.RED); + } //松开动画 voiceView.animate().scaleX(1.0f).scaleY(1.0f).setDuration(100).start(); - //停止录音 - releaseMediaRecorder(); break; } return true; @@ -455,13 +483,6 @@ mediaRecorder.release(); mediaRecorder = null; } - //显示录音文件路径 - if (outputFile.exists()) { - String audioPath = outputFile.getAbsolutePath(); - uploadAudioPresenter.onReadyRetrofitRequest(new File(audioPath)); - } else { - caseDetailEditView.setText("录音保存失败"); - } } @Override @@ -511,7 +532,8 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setVisibility(View.VISIBLE); + playAudioView.setText("播放录音"); + playAudioView.setTextColor(Color.BLUE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -524,7 +546,6 @@ @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { - playAudioView.setText(mediaPlayer.getDuration() / 1000 + "''"); mediaPlayer.start(); } } @@ -579,7 +600,7 @@ videoPlayerView.setVisibility(View.VISIBLE); videoUrl = resultBean.getData(); videoPlayerView.setUp(StringHelper.appendCompleteURL(videoUrl), JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); - videoPlayerView.topContainer.setVisibility(View.INVISIBLE); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); //设置第一帧为封面 Glide.with(context) .setDefaultRequestOptions(new RequestOptions().frame(4000000)) diff --git a/app/src/main/res/drawable/ic_map.xml b/app/src/main/res/drawable/ic_map.xml index e0e5132..8fa4af8 100644 --- a/app/src/main/res/drawable/ic_map.xml +++ b/app/src/main/res/drawable/ic_map.xml @@ -1,6 +1,6 @@ + android:fillColor="@color/mainThemeColor" + android:pathData="M512,704c105.6,0 192,-86.4 192,-192V256c0,-105.6 -86.4,-192 -192,-192s-192,86.4 -192,192v256c0,105.6 86.4,192 192,192z" /> + diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 1df0d8c..0519484 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -146,6 +146,7 @@ android:id="@+id/longitudeView" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_centerVertical="true" android:layout_marginStart="100dp" android:layout_marginEnd="@dimen/margin_10dp" android:layout_toStartOf="@id/locationMapView" @@ -159,7 +160,8 @@ android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" - android:background="@drawable/ic_map" /> + android:padding="@dimen/padding_10dp" + android:src="@drawable/ic_map" /> @@ -277,8 +279,7 @@ android:background="@drawable/bg_layout" android:paddingHorizontal="30dp" android:paddingVertical="5dp" - android:text="1''" - android:visibility="visible" /> + android:text="可以录音" /> @@ -302,27 +302,39 @@ android:text="案卷视频" android:textSize="@dimen/textFontSize" /> - + android:layout_marginEnd="10dp"> - + android:layout_height="wrap_content" + android:orientation="vertical"> + + + + + - + android:layout_gravity="end" + android:background="@drawable/ic_delete_white" /> + @@ -355,7 +367,7 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/margin_10dp" android:background="@drawable/bg_layout" - android:padding="15dp" + android:padding="@dimen/padding_10dp" android:src="@drawable/ic_add_black" />