Commit cd0d79d41e5b462f169f4ffc4f0708571854627d

Authored by 韩亚云
1 parent 342d5129

视频预览逻辑添加

core/app_qr/src/main/java/com/cnlive/cloud/moudle/qr/uitl/ScanUtil.java 0 → 100644
  1 +package com.cnlive.cloud.moudle.qr.uitl;
  2 +
  3 +import java.io.File;
  4 +
  5 +import cn.bertsir.zbar.utils.QRUtils;
  6 +
  7 +/**
  8 + * created by hanyayun
  9 + * on 2020/6/17
  10 + */
  11 +public class ScanUtil {
  12 +
  13 + public static String getRecode(File file){
  14 + try {
  15 + return QRUtils.getInstance().decodeQRcode(file.getAbsolutePath());
  16 + } catch (Exception e) {
  17 + e.printStackTrace();
  18 + }
  19 + return "";
  20 + }
  21 +}
core/imageload/src/main/java/com/cnlive/core/imagepreview/ImageDrawee.java
@@ -32,17 +32,20 @@ public class ImageDrawee extends FrameLayout { @@ -32,17 +32,20 @@ public class ImageDrawee extends FrameLayout {
32 private ProgressUI progressUI; 32 private ProgressUI progressUI;
33 private ViewData viewData; 33 private ViewData viewData;
34 34
35 - public ImageDrawee(@NonNull Context context,ViewData viewData) { 35 + public ImageDrawee(@NonNull Context context,ViewData viewData,CNVideoView videoView) {
36 super(context); 36 super(context);
37 this.viewData = viewData; 37 this.viewData = viewData;
38 - init(); 38 + init(videoView);
39 } 39 }
40 40
41 - private void init() { 41 + private void init(CNVideoView videoView) {
42 // 添加 imageView 42 // 添加 imageView
43 if(viewData.getType() == 1){ 43 if(viewData.getType() == 1){
44 imageView = new PhotoView(getContext()); 44 imageView = new PhotoView(getContext());
45 addView(imageView); 45 addView(imageView);
  46 + }else {
  47 + removeAllViews();
  48 + addView(videoView);
46 } 49 }
47 } 50 }
48 51
core/imageload/src/main/java/com/cnlive/core/imagepreview/ImagePreView.java
@@ -376,6 +376,7 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL @@ -376,6 +376,7 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL
376 * 取消浏览 376 * 取消浏览
377 */ 377 */
378 public void cancel() { 378 public void cancel() {
  379 + videoView.release();
379 videoView.onDestroy(); 380 videoView.onDestroy();
380 cancel(null); 381 cancel(null);
381 } 382 }
@@ -386,6 +387,11 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL @@ -386,6 +387,11 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL
386 * @param callback 退场动画执行回调 387 * @param callback 退场动画执行回调
387 */ 388 */
388 public void cancel(final ImageTransfer.OnTransCallback callback) { 389 public void cancel(final ImageTransfer.OnTransCallback callback) {
  390 + if(getCurrentItem().getImageView() == null) {
  391 + playEnterAnim = false;
  392 + playExitAnim = false;
  393 + draggable = false;
  394 + }
389 if (indexUI != null) { 395 if (indexUI != null) {
390 indexUI.hide(); 396 indexUI.hide();
391 } 397 }
@@ -443,9 +449,8 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL @@ -443,9 +449,8 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL
443 } 449 }
444 } 450 }
445 if (drawee == null) { 451 if (drawee == null) {
446 - drawee = new ImageDrawee(container.getContext(),mSourceList.get(position)); 452 + drawee = new ImageDrawee(container.getContext(),mSourceList.get(position),videoView);
447 drawee.setProgressUI(progressUI); 453 drawee.setProgressUI(progressUI);
448 - if(mSourceList.get(position).getType() == 2)drawee.addView(videoView);  
449 mViewBox.add(drawee); 454 mViewBox.add(drawee);
450 } 455 }
451 container.addView(drawee); 456 container.addView(drawee);
@@ -711,6 +716,7 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL @@ -711,6 +716,7 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL
711 716
712 @Override 717 @Override
713 public boolean onTouchEvent(MotionEvent event) { 718 public boolean onTouchEvent(MotionEvent event) {
  719 + if(getCurrentItem().getImageView() == null) return false;
714 int action = event.getAction() & event.getActionMasked(); 720 int action = event.getAction() & event.getActionMasked();
715 if (action == MotionEvent.ACTION_MOVE) { 721 if (action == MotionEvent.ACTION_MOVE) {
716 if (draggable && isDragging && mDragHandler != null) { 722 if (draggable && isDragging && mDragHandler != null) {
@@ -797,6 +803,11 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL @@ -797,6 +803,11 @@ public class ImagePreView extends FrameLayout implements ViewPager.OnPageChangeL
797 // 消费返回键点击事件,不传递出去 803 // 消费返回键点击事件,不传递出去
798 return true; 804 return true;
799 } 805 }
  806 + if(getCurrentItem().getImageView() == null){
  807 + cancel();
  808 + // 消费返回键点击事件,不传递出去
  809 + return true;
  810 + }
800 } 811 }
801 } 812 }
802 return super.onKeyDown(keyCode, event); 813 return super.onKeyDown(keyCode, event);
core/imageload/src/main/java/com/cnlive/core/ui/activity/PreViewImageActivity.java
@@ -8,7 +8,6 @@ import android.widget.ImageView; @@ -8,7 +8,6 @@ import android.widget.ImageView;
8 import com.alibaba.android.arouter.facade.annotation.Route; 8 import com.alibaba.android.arouter.facade.annotation.Route;
9 import com.cnlive.core.imageload.R; 9 import com.cnlive.core.imageload.R;
10 import com.cnlive.core.imageload.databinding.ActivityPreviewImageBinding; 10 import com.cnlive.core.imageload.databinding.ActivityPreviewImageBinding;
11 -import com.cnlive.core.imagepreview.ViewerStatus;  
12 import com.cnlive.core.imagepreview.listener.OnItemClickListener; 11 import com.cnlive.core.imagepreview.listener.OnItemClickListener;
13 import com.cnlive.core.libs.base.frame.activity.BaseActivity; 12 import com.cnlive.core.libs.base.frame.activity.BaseActivity;
14 import com.cnlive.core.ui.model.PreViewImgData; 13 import com.cnlive.core.ui.model.PreViewImgData;
@@ -71,7 +70,7 @@ public class PreViewImageActivity extends BaseActivity<PreViewImageView, PreView @@ -71,7 +70,7 @@ public class PreViewImageActivity extends BaseActivity<PreViewImageView, PreView
71 @Override 70 @Override
72 protected void onDestroy() { 71 protected void onDestroy() {
73 super.onDestroy(); 72 super.onDestroy();
74 - if(binding.imagePre != null && binding.imagePre.getViewStatus() == ViewerStatus.STATUS_WATCHING){ 73 + if(binding.imagePre != null){
75 binding.imagePre.cancel(); 74 binding.imagePre.cancel();
76 } 75 }
77 } 76 }
core/imageload/src/main/java/com/cnlive/core/ui/presenter/PreViewImagePresenter.java
@@ -12,6 +12,7 @@ import android.util.Log; @@ -12,6 +12,7 @@ import android.util.Log;
12 import com.bumptech.glide.Glide; 12 import com.bumptech.glide.Glide;
13 import com.bumptech.glide.request.FutureTarget; 13 import com.bumptech.glide.request.FutureTarget;
14 import com.bumptech.glide.request.target.Target; 14 import com.bumptech.glide.request.target.Target;
  15 +import com.cnlive.cloud.moudle.qr.uitl.ScanUtil;
15 import com.cnlive.core.imageload.api.ApiServiceStock; 16 import com.cnlive.core.imageload.api.ApiServiceStock;
16 import com.cnlive.core.libs.base.application.AppConfig; 17 import com.cnlive.core.libs.base.application.AppConfig;
17 import com.cnlive.core.libs.base.frame.presenter.BasePresenter; 18 import com.cnlive.core.libs.base.frame.presenter.BasePresenter;
@@ -278,7 +279,7 @@ public class PreViewImagePresenter extends BasePresenter<PreViewImageView> { @@ -278,7 +279,7 @@ public class PreViewImagePresenter extends BasePresenter<PreViewImageView> {
278 File scanFile = getFile(emitter, imgUrl, activity); 279 File scanFile = getFile(emitter, imgUrl, activity);
279 if (scanFile != null && FileUtils.isFileExists(scanFile) && scanFile.length() > 0) { 280 if (scanFile != null && FileUtils.isFileExists(scanFile) && scanFile.length() > 0) {
280 String content = null; 281 String content = null;
281 - content = QRUtils.getInstance().decodeQRcode(scanFile.getAbsolutePath()); 282 + content = ScanUtil.getRecode(scanFile);//QRUtils.getInstance().decodeQRcode(scanFile.getAbsolutePath());
282 if (TextUtils.isEmpty(scanFile.getAbsolutePath())) { 283 if (TextUtils.isEmpty(scanFile.getAbsolutePath())) {
283 content = QRUtils.getInstance().decodeQRcodeByZxing(scanFile.getAbsolutePath()); 284 content = QRUtils.getInstance().decodeQRcodeByZxing(scanFile.getAbsolutePath());
284 } 285 }