diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2b05ec2..f105e36 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + + urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } else { + emptyImageView.setVisibility(View.VISIBLE); + emptyImageView.setText("该案卷无图片材料"); + emptyImageView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + + //音频 + String audioFile = data.getAudioIdVerify(); + if (TextUtils.isEmpty(audioFile)) { + caseAudioView.setText("该案卷无音频材料"); + caseAudioView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } else { + String audioUrl; + if (audioFile.contains(",")) { + audioUrl = StringHelper.appendCompleteURL(audioFile.split(",")[0]); + } else { + audioUrl = StringHelper.appendCompleteURL(audioFile); + } + caseAudioView.setText("播放音频材料"); + caseAudioView.setTextColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)); + try { + mediaPlayer.setDataSource(audioUrl); + mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); + mediaPlayer.prepareAsync(); + } catch (IOException e) { + e.printStackTrace(); + } + caseAudioView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mediaPlayer.isPlaying()) { + mediaPlayer.start(); + } + } + }); + } + + //视频 + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl; + if (videoFile.contains(",")) { + videoUrl = StringHelper.appendCompleteURL(videoFile.split(",")[0]); + } else { + videoUrl = StringHelper.appendCompleteURL(videoFile); + } + videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.thumbImageView); + } else { + emptyVideoView.setVisibility(View.VISIBLE); + emptyVideoView.setText("该案卷无视频材料"); + emptyVideoView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick({R.id.locationMapView}) + @Override + public void onClick(View v) { + if (v.getId() == R.id.locationMapView) { + String type = caseTypeView.getText().toString(); + if (type.equals("请选择")) { + ToastHelper.showToast("请先选择案卷类型", ToastHelper.WARING); + return; + } + int source = data.getSource(); + if (source == 11 || source == 12) { + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", type); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + } else { + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("lng", Double.parseDouble(data.getLng())); + intent.putExtra("lat", Double.parseDouble(data.getLat())); + startActivity(intent); + } + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + if (requestCode == Constant.REQUEST_MAP_CODE) { + if (data == null) { + return; + } + String community = data.getStringExtra("community"); + String casePlace = data.getStringExtra("pos"); + caseCommunityView.setText(community); + if (TextUtils.isEmpty(casePlace)) { + casePlaceView.setText(community); + } else { + casePlaceView.setText(casePlace); + } + SaveKeyValues.removeKey("CommunityName"); + } + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (mediaPlayer != null) { + mediaPlayer.reset(); + mediaPlayer.release(); + mediaPlayer = null; + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2b05ec2..f105e36 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } else { + emptyImageView.setVisibility(View.VISIBLE); + emptyImageView.setText("该案卷无图片材料"); + emptyImageView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + + //音频 + String audioFile = data.getAudioIdVerify(); + if (TextUtils.isEmpty(audioFile)) { + caseAudioView.setText("该案卷无音频材料"); + caseAudioView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } else { + String audioUrl; + if (audioFile.contains(",")) { + audioUrl = StringHelper.appendCompleteURL(audioFile.split(",")[0]); + } else { + audioUrl = StringHelper.appendCompleteURL(audioFile); + } + caseAudioView.setText("播放音频材料"); + caseAudioView.setTextColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)); + try { + mediaPlayer.setDataSource(audioUrl); + mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); + mediaPlayer.prepareAsync(); + } catch (IOException e) { + e.printStackTrace(); + } + caseAudioView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mediaPlayer.isPlaying()) { + mediaPlayer.start(); + } + } + }); + } + + //视频 + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl; + if (videoFile.contains(",")) { + videoUrl = StringHelper.appendCompleteURL(videoFile.split(",")[0]); + } else { + videoUrl = StringHelper.appendCompleteURL(videoFile); + } + videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.thumbImageView); + } else { + emptyVideoView.setVisibility(View.VISIBLE); + emptyVideoView.setText("该案卷无视频材料"); + emptyVideoView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick({R.id.locationMapView}) + @Override + public void onClick(View v) { + if (v.getId() == R.id.locationMapView) { + String type = caseTypeView.getText().toString(); + if (type.equals("请选择")) { + ToastHelper.showToast("请先选择案卷类型", ToastHelper.WARING); + return; + } + int source = data.getSource(); + if (source == 11 || source == 12) { + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", type); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + } else { + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("lng", Double.parseDouble(data.getLng())); + intent.putExtra("lat", Double.parseDouble(data.getLat())); + startActivity(intent); + } + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + if (requestCode == Constant.REQUEST_MAP_CODE) { + if (data == null) { + return; + } + String community = data.getStringExtra("community"); + String casePlace = data.getStringExtra("pos"); + caseCommunityView.setText(community); + if (TextUtils.isEmpty(casePlace)) { + casePlaceView.setText(community); + } else { + casePlaceView.setText(casePlace); + } + SaveKeyValues.removeKey("CommunityName"); + } + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (mediaPlayer != null) { + mediaPlayer.reset(); + mediaPlayer.release(); + mediaPlayer = null; + } + } +} 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 4d2bb3a..43d604f 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 @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.mvp.presenter.CaseVerifiedPresenterImpl; import com.casic.dcms.mvp.view.ICaseVerifiedView; +import com.casic.dcms.ui.CaseVerifiedDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,9 @@ adapter.setOnItemClickListener(new CaseVerifiedResultAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseVerifiedDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2b05ec2..f105e36 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,6 +70,7 @@ + urls = new ArrayList<>(); + String[] split = images.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } else { + emptyImageView.setVisibility(View.VISIBLE); + emptyImageView.setText("该案卷无图片材料"); + emptyImageView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + + //音频 + String audioFile = data.getAudioIdVerify(); + if (TextUtils.isEmpty(audioFile)) { + caseAudioView.setText("该案卷无音频材料"); + caseAudioView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } else { + String audioUrl; + if (audioFile.contains(",")) { + audioUrl = StringHelper.appendCompleteURL(audioFile.split(",")[0]); + } else { + audioUrl = StringHelper.appendCompleteURL(audioFile); + } + caseAudioView.setText("播放音频材料"); + caseAudioView.setTextColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)); + try { + mediaPlayer.setDataSource(audioUrl); + mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); + mediaPlayer.prepareAsync(); + } catch (IOException e) { + e.printStackTrace(); + } + caseAudioView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!mediaPlayer.isPlaying()) { + mediaPlayer.start(); + } + } + }); + } + + //视频 + String videoFile = data.getVideoIdVerify(); + if (!TextUtils.isEmpty(audioFile)) { + videoPlayerView.setVisibility(View.VISIBLE); + String videoUrl; + if (videoFile.contains(",")) { + videoUrl = StringHelper.appendCompleteURL(videoFile.split(",")[0]); + } else { + videoUrl = StringHelper.appendCompleteURL(videoFile); + } + videoPlayerView.setUp(videoUrl, JCVideoPlayerStandard.SCREEN_LAYOUT_NORMAL); + videoPlayerView.tinyBackImageView.setVisibility(View.INVISIBLE); + //设置第一帧为封面 + Glide.with(this) + .setDefaultRequestOptions(new RequestOptions().frame(4000000)) + .load(videoUrl) + .into(videoPlayerView.thumbImageView); + } else { + emptyVideoView.setVisibility(View.VISIBLE); + emptyVideoView.setText("该案卷无视频材料"); + emptyVideoView.setText(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick({R.id.locationMapView}) + @Override + public void onClick(View v) { + if (v.getId() == R.id.locationMapView) { + String type = caseTypeView.getText().toString(); + if (type.equals("请选择")) { + ToastHelper.showToast("请先选择案卷类型", ToastHelper.WARING); + return; + } + int source = data.getSource(); + if (source == 11 || source == 12) { + Intent intent = new Intent(this, ArcGISMapActivity.class); + intent.putExtra("type", type); + startActivityForResult(intent, Constant.REQUEST_MAP_CODE); + } else { + Intent intent = new Intent(this, DisplayMapActivity.class); + intent.putExtra("lng", Double.parseDouble(data.getLng())); + intent.putExtra("lat", Double.parseDouble(data.getLat())); + startActivity(intent); + } + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + if (requestCode == Constant.REQUEST_MAP_CODE) { + if (data == null) { + return; + } + String community = data.getStringExtra("community"); + String casePlace = data.getStringExtra("pos"); + caseCommunityView.setText(community); + if (TextUtils.isEmpty(casePlace)) { + casePlaceView.setText(community); + } else { + casePlaceView.setText(casePlace); + } + SaveKeyValues.removeKey("CommunityName"); + } + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (mediaPlayer != null) { + mediaPlayer.reset(); + mediaPlayer.release(); + mediaPlayer = null; + } + } +} 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 4d2bb3a..43d604f 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 @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.mvp.presenter.CaseVerifiedPresenterImpl; import com.casic.dcms.mvp.view.ICaseVerifiedView; +import com.casic.dcms.ui.CaseVerifiedDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,9 @@ adapter.setOnItemClickListener(new CaseVerifiedResultAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseVerifiedDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/res/layout/activity_case_verified_detail.xml b/app/src/main/res/layout/activity_case_verified_detail.xml new file mode 100644 index 0000000..c9f00d6 --- /dev/null +++ b/app/src/main/res/layout/activity_case_verified_detail.xml @@ -0,0 +1,362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file