diff --git a/app/build.gradle b/app/build.gradle index 00f20d8..c649d4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "v1.1.0.0" + versionCode 2 + versionName "v2.1.0.0" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } diff --git a/app/build.gradle b/app/build.gradle index 00f20d8..c649d4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "v1.1.0.0" + versionCode 2 + versionName "v2.1.0.0" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } 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 597c744..982a3e4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,7 +4,6 @@ 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.os.Handler; @@ -62,10 +61,13 @@ 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.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -87,17 +89,17 @@ @BindView(R.id.caseSmallClassView) TextView caseSmallClassView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.caseLocationView) EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; - @BindView(R.id.playAudioView) - TextView playAudioView; + @BindView(R.id.caseAudioButton) + QMUIRoundButton caseAudioButton; @BindView(R.id.voiceView) ImageView voiceView; @BindView(R.id.addVideoView) @@ -131,6 +133,8 @@ private String audioUrl, videoUrl; private AudioRecodeHelper audioRecodeHelper; private PopupWindow popWindow; + private static WeakReferenceHandler weakReferenceHandler; + private boolean isFirstEnter = true; @Override public int initLayoutView() { @@ -157,6 +161,7 @@ .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("视频压缩中,请稍后") .create(); + weakReferenceHandler = new WeakReferenceHandler(this); uploadImagePresenter = new UploadImagePresenterImpl(this); uploadAudioPresenter = new UploadAudioPresenterImpl(this); uploadVideoPresenter = new UploadVideoPresenterImpl(this); @@ -164,6 +169,13 @@ selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public void initEvent() { + voiceView.setOnTouchListener(this); + submitButton.setChangeAlphaWhenPress(true); //录音相关 View view = View.inflate(this, R.layout.popu_microphone, null); @@ -188,13 +200,6 @@ }); } - @SuppressLint("ClickableViewAccessibility") - @Override - public void initEvent() { - voiceView.setOnTouchListener(this); - submitButton.setChangeAlphaWhenPress(true); - } - @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) { @@ -384,10 +389,10 @@ * 第二个参数:压缩后视频保存的路径 */ String comPressPath = SiliCompressor.with(context).compressVideo(mediaRealPath, FileUtils.getVideoCompressPath()); - Message message = handler.obtainMessage(); + Message message = weakReferenceHandler.obtainMessage(); message.what = 20210427; message.obj = comPressPath; - handler.sendMessage(message); + weakReferenceHandler.sendMessage(message); } catch (Exception e) { e.printStackTrace(); } @@ -413,22 +418,53 @@ } } - @SuppressLint("HandlerLeak") - private Handler handler = new Handler() { + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(CaseUploadActivity activity) { + reference = new WeakReference<>(activity); + } + @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); + CaseUploadActivity caseUploadActivity = reference.get(); if (msg.what == 20210427) { - qmuiTipDialog.hide(); + caseUploadActivity.qmuiTipDialog.dismiss(); String comPressPath = (String) msg.obj; if (!TextUtils.isEmpty(comPressPath)) { - uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); + caseUploadActivity.uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); } else { ToastHelper.showToast("案卷视频上传失败", ToastHelper.ERROR); } } } - }; + } + + /** + * 首次进入页面显示引导Popup + */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + if (isFirstEnter) { + TextView textView = new TextView(this); + int padding = QMUIDisplayHelper.dp2px(this, 10); + textView.setPadding(padding, padding, padding, padding); + textView.setGravity(Gravity.CENTER); + textView.setText("按住即可开始录音"); + QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 150)) + .preferredDirection(QMUIPopup.DIRECTION_BOTTOM) + .view(textView) + .shadow(true) + .arrow(true) + .animStyle(QMUIPopup.ANIM_AUTO) + .dimAmount(0.6f)//60%透明度 + .onDismiss(null) + .show(voiceView); + isFirstEnter = false; + } + } @SuppressLint("ClickableViewAccessibility") @Override @@ -495,8 +531,7 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setText("播放录音"); - playAudioView.setTextColor(Color.BLUE); + caseAudioButton.setVisibility(View.VISIBLE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -505,7 +540,8 @@ } catch (IOException e) { e.printStackTrace(); } - playAudioView.setOnClickListener(new View.OnClickListener() { + caseAudioButton.setChangeAlphaWhenPress(true); + caseAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { @@ -525,31 +561,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -604,7 +645,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } diff --git a/app/build.gradle b/app/build.gradle index 00f20d8..c649d4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "v1.1.0.0" + versionCode 2 + versionName "v2.1.0.0" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } 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 597c744..982a3e4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,7 +4,6 @@ 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.os.Handler; @@ -62,10 +61,13 @@ 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.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -87,17 +89,17 @@ @BindView(R.id.caseSmallClassView) TextView caseSmallClassView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.caseLocationView) EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; - @BindView(R.id.playAudioView) - TextView playAudioView; + @BindView(R.id.caseAudioButton) + QMUIRoundButton caseAudioButton; @BindView(R.id.voiceView) ImageView voiceView; @BindView(R.id.addVideoView) @@ -131,6 +133,8 @@ private String audioUrl, videoUrl; private AudioRecodeHelper audioRecodeHelper; private PopupWindow popWindow; + private static WeakReferenceHandler weakReferenceHandler; + private boolean isFirstEnter = true; @Override public int initLayoutView() { @@ -157,6 +161,7 @@ .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("视频压缩中,请稍后") .create(); + weakReferenceHandler = new WeakReferenceHandler(this); uploadImagePresenter = new UploadImagePresenterImpl(this); uploadAudioPresenter = new UploadAudioPresenterImpl(this); uploadVideoPresenter = new UploadVideoPresenterImpl(this); @@ -164,6 +169,13 @@ selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public void initEvent() { + voiceView.setOnTouchListener(this); + submitButton.setChangeAlphaWhenPress(true); //录音相关 View view = View.inflate(this, R.layout.popu_microphone, null); @@ -188,13 +200,6 @@ }); } - @SuppressLint("ClickableViewAccessibility") - @Override - public void initEvent() { - voiceView.setOnTouchListener(this); - submitButton.setChangeAlphaWhenPress(true); - } - @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) { @@ -384,10 +389,10 @@ * 第二个参数:压缩后视频保存的路径 */ String comPressPath = SiliCompressor.with(context).compressVideo(mediaRealPath, FileUtils.getVideoCompressPath()); - Message message = handler.obtainMessage(); + Message message = weakReferenceHandler.obtainMessage(); message.what = 20210427; message.obj = comPressPath; - handler.sendMessage(message); + weakReferenceHandler.sendMessage(message); } catch (Exception e) { e.printStackTrace(); } @@ -413,22 +418,53 @@ } } - @SuppressLint("HandlerLeak") - private Handler handler = new Handler() { + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(CaseUploadActivity activity) { + reference = new WeakReference<>(activity); + } + @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); + CaseUploadActivity caseUploadActivity = reference.get(); if (msg.what == 20210427) { - qmuiTipDialog.hide(); + caseUploadActivity.qmuiTipDialog.dismiss(); String comPressPath = (String) msg.obj; if (!TextUtils.isEmpty(comPressPath)) { - uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); + caseUploadActivity.uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); } else { ToastHelper.showToast("案卷视频上传失败", ToastHelper.ERROR); } } } - }; + } + + /** + * 首次进入页面显示引导Popup + */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + if (isFirstEnter) { + TextView textView = new TextView(this); + int padding = QMUIDisplayHelper.dp2px(this, 10); + textView.setPadding(padding, padding, padding, padding); + textView.setGravity(Gravity.CENTER); + textView.setText("按住即可开始录音"); + QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 150)) + .preferredDirection(QMUIPopup.DIRECTION_BOTTOM) + .view(textView) + .shadow(true) + .arrow(true) + .animStyle(QMUIPopup.ANIM_AUTO) + .dimAmount(0.6f)//60%透明度 + .onDismiss(null) + .show(voiceView); + isFirstEnter = false; + } + } @SuppressLint("ClickableViewAccessibility") @Override @@ -495,8 +531,7 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setText("播放录音"); - playAudioView.setTextColor(Color.BLUE); + caseAudioButton.setVisibility(View.VISIBLE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -505,7 +540,8 @@ } catch (IOException e) { e.printStackTrace(); } - playAudioView.setOnClickListener(new View.OnClickListener() { + caseAudioButton.setChangeAlphaWhenPress(true); + caseAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { @@ -525,31 +561,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -604,7 +645,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 09bb91f..ce71414 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -66,9 +66,9 @@ @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; @BindView(R.id.caseLocationView) @@ -350,30 +350,35 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -414,7 +419,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } diff --git a/app/build.gradle b/app/build.gradle index 00f20d8..c649d4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "v1.1.0.0" + versionCode 2 + versionName "v2.1.0.0" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } 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 597c744..982a3e4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,7 +4,6 @@ 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.os.Handler; @@ -62,10 +61,13 @@ 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.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -87,17 +89,17 @@ @BindView(R.id.caseSmallClassView) TextView caseSmallClassView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.caseLocationView) EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; - @BindView(R.id.playAudioView) - TextView playAudioView; + @BindView(R.id.caseAudioButton) + QMUIRoundButton caseAudioButton; @BindView(R.id.voiceView) ImageView voiceView; @BindView(R.id.addVideoView) @@ -131,6 +133,8 @@ private String audioUrl, videoUrl; private AudioRecodeHelper audioRecodeHelper; private PopupWindow popWindow; + private static WeakReferenceHandler weakReferenceHandler; + private boolean isFirstEnter = true; @Override public int initLayoutView() { @@ -157,6 +161,7 @@ .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("视频压缩中,请稍后") .create(); + weakReferenceHandler = new WeakReferenceHandler(this); uploadImagePresenter = new UploadImagePresenterImpl(this); uploadAudioPresenter = new UploadAudioPresenterImpl(this); uploadVideoPresenter = new UploadVideoPresenterImpl(this); @@ -164,6 +169,13 @@ selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public void initEvent() { + voiceView.setOnTouchListener(this); + submitButton.setChangeAlphaWhenPress(true); //录音相关 View view = View.inflate(this, R.layout.popu_microphone, null); @@ -188,13 +200,6 @@ }); } - @SuppressLint("ClickableViewAccessibility") - @Override - public void initEvent() { - voiceView.setOnTouchListener(this); - submitButton.setChangeAlphaWhenPress(true); - } - @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) { @@ -384,10 +389,10 @@ * 第二个参数:压缩后视频保存的路径 */ String comPressPath = SiliCompressor.with(context).compressVideo(mediaRealPath, FileUtils.getVideoCompressPath()); - Message message = handler.obtainMessage(); + Message message = weakReferenceHandler.obtainMessage(); message.what = 20210427; message.obj = comPressPath; - handler.sendMessage(message); + weakReferenceHandler.sendMessage(message); } catch (Exception e) { e.printStackTrace(); } @@ -413,22 +418,53 @@ } } - @SuppressLint("HandlerLeak") - private Handler handler = new Handler() { + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(CaseUploadActivity activity) { + reference = new WeakReference<>(activity); + } + @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); + CaseUploadActivity caseUploadActivity = reference.get(); if (msg.what == 20210427) { - qmuiTipDialog.hide(); + caseUploadActivity.qmuiTipDialog.dismiss(); String comPressPath = (String) msg.obj; if (!TextUtils.isEmpty(comPressPath)) { - uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); + caseUploadActivity.uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); } else { ToastHelper.showToast("案卷视频上传失败", ToastHelper.ERROR); } } } - }; + } + + /** + * 首次进入页面显示引导Popup + */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + if (isFirstEnter) { + TextView textView = new TextView(this); + int padding = QMUIDisplayHelper.dp2px(this, 10); + textView.setPadding(padding, padding, padding, padding); + textView.setGravity(Gravity.CENTER); + textView.setText("按住即可开始录音"); + QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 150)) + .preferredDirection(QMUIPopup.DIRECTION_BOTTOM) + .view(textView) + .shadow(true) + .arrow(true) + .animStyle(QMUIPopup.ANIM_AUTO) + .dimAmount(0.6f)//60%透明度 + .onDismiss(null) + .show(voiceView); + isFirstEnter = false; + } + } @SuppressLint("ClickableViewAccessibility") @Override @@ -495,8 +531,7 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setText("播放录音"); - playAudioView.setTextColor(Color.BLUE); + caseAudioButton.setVisibility(View.VISIBLE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -505,7 +540,8 @@ } catch (IOException e) { e.printStackTrace(); } - playAudioView.setOnClickListener(new View.OnClickListener() { + caseAudioButton.setChangeAlphaWhenPress(true); + caseAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { @@ -525,31 +561,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -604,7 +645,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 09bb91f..ce71414 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -66,9 +66,9 @@ @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; @BindView(R.id.caseLocationView) @@ -350,30 +350,35 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -414,7 +419,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 10cb371..6e131c9 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -53,9 +53,9 @@ @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.shopKeeperView) EditText shopKeeperView; @BindView(R.id.phoneNumberView) @@ -235,7 +235,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (mediaList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } @@ -290,31 +290,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } diff --git a/app/build.gradle b/app/build.gradle index 00f20d8..c649d4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "v1.1.0.0" + versionCode 2 + versionName "v2.1.0.0" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } 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 597c744..982a3e4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,7 +4,6 @@ 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.os.Handler; @@ -62,10 +61,13 @@ 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.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -87,17 +89,17 @@ @BindView(R.id.caseSmallClassView) TextView caseSmallClassView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.caseLocationView) EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; - @BindView(R.id.playAudioView) - TextView playAudioView; + @BindView(R.id.caseAudioButton) + QMUIRoundButton caseAudioButton; @BindView(R.id.voiceView) ImageView voiceView; @BindView(R.id.addVideoView) @@ -131,6 +133,8 @@ private String audioUrl, videoUrl; private AudioRecodeHelper audioRecodeHelper; private PopupWindow popWindow; + private static WeakReferenceHandler weakReferenceHandler; + private boolean isFirstEnter = true; @Override public int initLayoutView() { @@ -157,6 +161,7 @@ .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("视频压缩中,请稍后") .create(); + weakReferenceHandler = new WeakReferenceHandler(this); uploadImagePresenter = new UploadImagePresenterImpl(this); uploadAudioPresenter = new UploadAudioPresenterImpl(this); uploadVideoPresenter = new UploadVideoPresenterImpl(this); @@ -164,6 +169,13 @@ selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public void initEvent() { + voiceView.setOnTouchListener(this); + submitButton.setChangeAlphaWhenPress(true); //录音相关 View view = View.inflate(this, R.layout.popu_microphone, null); @@ -188,13 +200,6 @@ }); } - @SuppressLint("ClickableViewAccessibility") - @Override - public void initEvent() { - voiceView.setOnTouchListener(this); - submitButton.setChangeAlphaWhenPress(true); - } - @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) { @@ -384,10 +389,10 @@ * 第二个参数:压缩后视频保存的路径 */ String comPressPath = SiliCompressor.with(context).compressVideo(mediaRealPath, FileUtils.getVideoCompressPath()); - Message message = handler.obtainMessage(); + Message message = weakReferenceHandler.obtainMessage(); message.what = 20210427; message.obj = comPressPath; - handler.sendMessage(message); + weakReferenceHandler.sendMessage(message); } catch (Exception e) { e.printStackTrace(); } @@ -413,22 +418,53 @@ } } - @SuppressLint("HandlerLeak") - private Handler handler = new Handler() { + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(CaseUploadActivity activity) { + reference = new WeakReference<>(activity); + } + @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); + CaseUploadActivity caseUploadActivity = reference.get(); if (msg.what == 20210427) { - qmuiTipDialog.hide(); + caseUploadActivity.qmuiTipDialog.dismiss(); String comPressPath = (String) msg.obj; if (!TextUtils.isEmpty(comPressPath)) { - uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); + caseUploadActivity.uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); } else { ToastHelper.showToast("案卷视频上传失败", ToastHelper.ERROR); } } } - }; + } + + /** + * 首次进入页面显示引导Popup + */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + if (isFirstEnter) { + TextView textView = new TextView(this); + int padding = QMUIDisplayHelper.dp2px(this, 10); + textView.setPadding(padding, padding, padding, padding); + textView.setGravity(Gravity.CENTER); + textView.setText("按住即可开始录音"); + QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 150)) + .preferredDirection(QMUIPopup.DIRECTION_BOTTOM) + .view(textView) + .shadow(true) + .arrow(true) + .animStyle(QMUIPopup.ANIM_AUTO) + .dimAmount(0.6f)//60%透明度 + .onDismiss(null) + .show(voiceView); + isFirstEnter = false; + } + } @SuppressLint("ClickableViewAccessibility") @Override @@ -495,8 +531,7 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setText("播放录音"); - playAudioView.setTextColor(Color.BLUE); + caseAudioButton.setVisibility(View.VISIBLE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -505,7 +540,8 @@ } catch (IOException e) { e.printStackTrace(); } - playAudioView.setOnClickListener(new View.OnClickListener() { + caseAudioButton.setChangeAlphaWhenPress(true); + caseAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { @@ -525,31 +561,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -604,7 +645,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 09bb91f..ce71414 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -66,9 +66,9 @@ @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; @BindView(R.id.caseLocationView) @@ -350,30 +350,35 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -414,7 +419,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 10cb371..6e131c9 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -53,9 +53,9 @@ @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.shopKeeperView) EditText shopKeeperView; @BindView(R.id.phoneNumberView) @@ -235,7 +235,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (mediaList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } @@ -290,31 +290,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 79f5967..a515377 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -120,7 +120,7 @@ android:text="经\u3000\u3000度" android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> @@ -248,16 +248,19 @@ android:text="案卷录音" android:textSize="@dimen/textFontSize" /> - + android:text="播放录音" + android:textColor="@color/white" + android:visibility="gone" + app:qmui_backgroundColor="@color/mainThemeColor" + app:qmui_radius="5dp" /> reference; + + private WeakReferenceHandler(CaseUploadActivity activity) { + reference = new WeakReference<>(activity); + } + @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); + CaseUploadActivity caseUploadActivity = reference.get(); if (msg.what == 20210427) { - qmuiTipDialog.hide(); + caseUploadActivity.qmuiTipDialog.dismiss(); String comPressPath = (String) msg.obj; if (!TextUtils.isEmpty(comPressPath)) { - uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); + caseUploadActivity.uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); } else { ToastHelper.showToast("案卷视频上传失败", ToastHelper.ERROR); } } } - }; + } + + /** + * 首次进入页面显示引导Popup + */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + if (isFirstEnter) { + TextView textView = new TextView(this); + int padding = QMUIDisplayHelper.dp2px(this, 10); + textView.setPadding(padding, padding, padding, padding); + textView.setGravity(Gravity.CENTER); + textView.setText("按住即可开始录音"); + QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 150)) + .preferredDirection(QMUIPopup.DIRECTION_BOTTOM) + .view(textView) + .shadow(true) + .arrow(true) + .animStyle(QMUIPopup.ANIM_AUTO) + .dimAmount(0.6f)//60%透明度 + .onDismiss(null) + .show(voiceView); + isFirstEnter = false; + } + } @SuppressLint("ClickableViewAccessibility") @Override @@ -495,8 +531,7 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setText("播放录音"); - playAudioView.setTextColor(Color.BLUE); + caseAudioButton.setVisibility(View.VISIBLE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -505,7 +540,8 @@ } catch (IOException e) { e.printStackTrace(); } - playAudioView.setOnClickListener(new View.OnClickListener() { + caseAudioButton.setChangeAlphaWhenPress(true); + caseAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { @@ -525,31 +561,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -604,7 +645,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 09bb91f..ce71414 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -66,9 +66,9 @@ @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; @BindView(R.id.caseLocationView) @@ -350,30 +350,35 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -414,7 +419,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 10cb371..6e131c9 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -53,9 +53,9 @@ @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.shopKeeperView) EditText shopKeeperView; @BindView(R.id.phoneNumberView) @@ -235,7 +235,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (mediaList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } @@ -290,31 +290,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 79f5967..a515377 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -120,7 +120,7 @@ android:text="经\u3000\u3000度" android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> @@ -248,16 +248,19 @@ android:text="案卷录音" android:textSize="@dimen/textFontSize" /> - + android:text="播放录音" + android:textColor="@color/white" + android:visibility="gone" + app:qmui_backgroundColor="@color/mainThemeColor" + app:qmui_radius="5dp" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> diff --git a/app/build.gradle b/app/build.gradle index 00f20d8..c649d4a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ applicationId "com.casic.dcms" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "v1.1.0.0" + versionCode 2 + versionName "v2.1.0.0" ndk { abiFilters "armeabi", "armeabi-v7a", "x86_64", "x86" } 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 597c744..982a3e4 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -4,7 +4,6 @@ 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.os.Handler; @@ -62,10 +61,13 @@ 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.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; import java.io.File; import java.io.IOException; +import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.List; @@ -87,17 +89,17 @@ @BindView(R.id.caseSmallClassView) TextView caseSmallClassView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.caseLocationView) EditText caseLocationView; @BindView(R.id.caseDetailEditView) EditText caseDetailEditView; - @BindView(R.id.playAudioView) - TextView playAudioView; + @BindView(R.id.caseAudioButton) + QMUIRoundButton caseAudioButton; @BindView(R.id.voiceView) ImageView voiceView; @BindView(R.id.addVideoView) @@ -131,6 +133,8 @@ private String audioUrl, videoUrl; private AudioRecodeHelper audioRecodeHelper; private PopupWindow popWindow; + private static WeakReferenceHandler weakReferenceHandler; + private boolean isFirstEnter = true; @Override public int initLayoutView() { @@ -157,6 +161,7 @@ .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) .setTipWord("视频压缩中,请稍后") .create(); + weakReferenceHandler = new WeakReferenceHandler(this); uploadImagePresenter = new UploadImagePresenterImpl(this); uploadAudioPresenter = new UploadAudioPresenterImpl(this); uploadVideoPresenter = new UploadVideoPresenterImpl(this); @@ -164,6 +169,13 @@ selectedResultView.setLayoutManager(new GridLayoutManager(this, 2)); selectedResultView.addItemDecoration(new ItemDecorationSpace()); selectedResultView.setAdapter(imageAdapter); + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public void initEvent() { + voiceView.setOnTouchListener(this); + submitButton.setChangeAlphaWhenPress(true); //录音相关 View view = View.inflate(this, R.layout.popu_microphone, null); @@ -188,13 +200,6 @@ }); } - @SuppressLint("ClickableViewAccessibility") - @Override - public void initEvent() { - voiceView.setOnTouchListener(this); - submitButton.setChangeAlphaWhenPress(true); - } - @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) { @@ -384,10 +389,10 @@ * 第二个参数:压缩后视频保存的路径 */ String comPressPath = SiliCompressor.with(context).compressVideo(mediaRealPath, FileUtils.getVideoCompressPath()); - Message message = handler.obtainMessage(); + Message message = weakReferenceHandler.obtainMessage(); message.what = 20210427; message.obj = comPressPath; - handler.sendMessage(message); + weakReferenceHandler.sendMessage(message); } catch (Exception e) { e.printStackTrace(); } @@ -413,22 +418,53 @@ } } - @SuppressLint("HandlerLeak") - private Handler handler = new Handler() { + private static class WeakReferenceHandler extends Handler { + private WeakReference reference; + + private WeakReferenceHandler(CaseUploadActivity activity) { + reference = new WeakReference<>(activity); + } + @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); + CaseUploadActivity caseUploadActivity = reference.get(); if (msg.what == 20210427) { - qmuiTipDialog.hide(); + caseUploadActivity.qmuiTipDialog.dismiss(); String comPressPath = (String) msg.obj; if (!TextUtils.isEmpty(comPressPath)) { - uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); + caseUploadActivity.uploadVideoPresenter.onReadyRetrofitRequest(new File(comPressPath)); } else { ToastHelper.showToast("案卷视频上传失败", ToastHelper.ERROR); } } } - }; + } + + /** + * 首次进入页面显示引导Popup + */ + @Override + public void onWindowFocusChanged(boolean hasFocus) { + super.onWindowFocusChanged(hasFocus); + if (isFirstEnter) { + TextView textView = new TextView(this); + int padding = QMUIDisplayHelper.dp2px(this, 10); + textView.setPadding(padding, padding, padding, padding); + textView.setGravity(Gravity.CENTER); + textView.setText("按住即可开始录音"); + QMUIPopups.popup(this, QMUIDisplayHelper.dp2px(this, 150)) + .preferredDirection(QMUIPopup.DIRECTION_BOTTOM) + .view(textView) + .shadow(true) + .arrow(true) + .animStyle(QMUIPopup.ANIM_AUTO) + .dimAmount(0.6f)//60%透明度 + .onDismiss(null) + .show(voiceView); + isFirstEnter = false; + } + } @SuppressLint("ClickableViewAccessibility") @Override @@ -495,8 +531,7 @@ /** * http://111.198.10.15:11409/static/2021-04/8fb86dae39ad4f949e934e25465d7382.m4a * */ - playAudioView.setText("播放录音"); - playAudioView.setTextColor(Color.BLUE); + caseAudioButton.setVisibility(View.VISIBLE); try { mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(StringHelper.appendCompleteURL(audioUrl)); @@ -505,7 +540,8 @@ } catch (IOException e) { e.printStackTrace(); } - playAudioView.setOnClickListener(new View.OnClickListener() { + caseAudioButton.setChangeAlphaWhenPress(true); + caseAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!mediaPlayer.isPlaying()) { @@ -525,31 +561,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -604,7 +645,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 09bb91f..ce71414 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadQuicklyActivity.java @@ -66,9 +66,9 @@ @BindView(R.id.communityNameView) EditText communityNameView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.locationMapView) ImageView locationMapView; @BindView(R.id.caseLocationView) @@ -350,30 +350,35 @@ */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg String url = resultBean.getData(); - imageList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + imageList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } @@ -414,7 +419,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (imageList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } 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 10cb371..6e131c9 100644 --- a/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/ThreePackageUploadActivity.java @@ -53,9 +53,9 @@ @BindView(R.id.communityView) EditText communityView; @BindView(R.id.longitudeView) - EditText longitudeView; + TextView longitudeView; @BindView(R.id.latitudeView) - EditText latitudeView; + TextView latitudeView; @BindView(R.id.shopKeeperView) EditText shopKeeperView; @BindView(R.id.phoneNumberView) @@ -235,7 +235,7 @@ ToastHelper.showToast("案卷情况还未填写", ToastHelper.WARING); return; } - if (mediaList.size() != 2) { + if (imageAdapter.getItemCount() != 2) { ToastHelper.showToast("必须选择两张图片", ToastHelper.WARING); return; } @@ -290,31 +290,36 @@ * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg */ //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - imageAdapter.setMediaList(realPaths); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - OtherUtils.showBigImage(context, position, realPaths); + int sumItemCount = imageAdapter.getItemCount() + 1;//没上传一张图片,图片总数都是在原有的基础上+1 + if (sumItemCount <= 2) { + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); } - }); - //删除按钮点击事件 - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); + imageAdapter.setMediaList(realPaths); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + OtherUtils.showBigImage(context, position, realPaths); } - } - }); + }); + //删除按钮点击事件 + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } else { + ToastHelper.showToast("最多只能上传2张图片", ToastHelper.WARING); + } } } diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 79f5967..a515377 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -120,7 +120,7 @@ android:text="经\u3000\u3000度" android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> @@ -248,16 +248,19 @@ android:text="案卷录音" android:textSize="@dimen/textFontSize" /> - + android:text="播放录音" + android:textColor="@color/white" + android:visibility="gone" + app:qmui_backgroundColor="@color/mainThemeColor" + app:qmui_radius="5dp" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> diff --git a/app/src/main/res/layout/activity_package.xml b/app/src/main/res/layout/activity_package.xml index 0a5ea98..7f224f8 100644 --- a/app/src/main/res/layout/activity_package.xml +++ b/app/src/main/res/layout/activity_package.xml @@ -54,41 +54,18 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" android:drawableEnd="@mipmap/point" - android:text="社\u3000\u3000区" - android:textSize="@dimen/textFontSize" /> - - - - - - - - - - + android:paddingVertical="5dp" + android:textSize="@dimen/textFontSize" /> @@ -103,12 +80,35 @@ android:text="纬\u3000\u3000度" android:textSize="@dimen/textFontSize" /> - + + + + + + + + +