Commit a37e83450c700275fc89d7d51d2c9ea98dea608b

Authored by 谷俊
1 parent 74affc6a

添加缓存逻辑判断

app/src/main/java/com/cnlive/im/mode/VoiceMessage.java
... ... @@ -12,6 +12,7 @@ public class VoiceMessage {
12 12 private CNVoiceMessage cnVoiceMessage;
13 13 boolean isUserSend;
14 14  
  15 + private boolean isDownloading;
15 16 private int progress;
16 17  
17 18 public VoiceMessage(String type, CNVoiceMessage cnVoiceMessage, boolean isUserSend) {
... ... @@ -58,4 +59,12 @@ public class VoiceMessage {
58 59 public void setProgress(int progress) {
59 60 this.progress = progress;
60 61 }
  62 +
  63 + public boolean isDownloading() {
  64 + return isDownloading;
  65 + }
  66 +
  67 + public void setDownloading(boolean downloading) {
  68 + isDownloading = downloading;
  69 + }
61 70 }
... ...
app/src/main/java/com/cnlive/im/ui/ChatRoomActivity.java
... ... @@ -516,7 +516,7 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL
516 516 }
517 517  
518 518 @Override
519   - public void onItemClick(VoiceMessage voiceMessage, final AnimationDrawable animationDrawable) {
  519 + public void onItemClick(final VoiceMessage voiceMessage, final AnimationDrawable animationDrawable) {
520 520 if (voiceMessage == null) {
521 521 Toast.makeText(this, "数据异常", Toast.LENGTH_LONG).show();
522 522 return;
... ... @@ -536,23 +536,29 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL
536 536 }
537 537 startVoice(voicePath, animationDrawable);
538 538 } else {
539   - voiceMessage.getCnVoiceMessage().getVoice(voicePath, new IChat.OnDownloadListener() {
540   - @Override
541   - public void onSuccess() {
542   - startVoice(voicePath, animationDrawable);
543   - }
544   -
545   - @Override
546   - public void onError(int i, String s) {
  539 + if (voiceMessage.isDownloading()) {
  540 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  541 + } else {
  542 + voiceMessage.setDownloading(true);
  543 + voiceMessage.getCnVoiceMessage().getVoice(voicePath, new IChat.OnDownloadListener() {
  544 + @Override
  545 + public void onSuccess() {
  546 + voiceMessage.setDownloading(false);
  547 + startVoice(voicePath, animationDrawable);
  548 + }
547 549  
548   - }
549   - });
  550 + @Override
  551 + public void onError(int i, String s) {
  552 + voiceMessage.setDownloading(false);
  553 + }
  554 + });
  555 + }
550 556 }
551 557 }
552 558 }
553 559  
554 560 @Override
555   - public void onVideoClick(VideoMessage videoMessage) {
  561 + public void onVideoClick(final VideoMessage videoMessage) {
556 562 if (videoMessage.getCnVideoMessage().isSelf()) {
557 563 Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
558 564 intent.putExtra("videoPath", videoMessage.getCnVideoMessage().getVideoPath());
... ... @@ -561,30 +567,41 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL
561 567 String videoUuid = videoMessage.getCnVideoMessage().getVideo().getUuid();
562 568 final String videoPath = FileUtil.getCacheFilePath(videoUuid);
563 569 if (FileUtil.isCacheFileExist(videoUuid)) {
  570 + File file = new File(videoPath);
  571 + if (file.length() < videoMessage.getCnVideoMessage().getVideo().getSize()) {
  572 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  573 + return;
  574 + }
564 575 Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
565 576 intent.putExtra("videoPath", videoPath);
566 577 startActivity(intent);
567 578 } else {
568   - videoMessage.getCnVideoMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
569   - @Override
570   - public void onSuccess() {
571   - Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
572   - intent.putExtra("videoPath", videoPath);
573   - startActivity(intent);
574   - }
575   -
576   - @Override
577   - public void onError(int i, String s) {
  579 + if (videoMessage.isDownloading()) {
  580 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  581 + } else {
  582 + videoMessage.setDownloading(true);
  583 + videoMessage.getCnVideoMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
  584 + @Override
  585 + public void onSuccess() {
  586 + videoMessage.setDownloading(false);
  587 + Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
  588 + intent.putExtra("videoPath", videoPath);
  589 + startActivity(intent);
  590 + }
578 591  
579   - }
580   - });
  592 + @Override
  593 + public void onError(int i, String s) {
  594 + videoMessage.setDownloading(false);
  595 + }
  596 + });
  597 + }
581 598 }
582 599 }
583 600  
584 601 }
585 602  
586 603 @Override
587   - public void onUgcVideoClick(UgcVideoMessage ugcVideoMessage) {
  604 + public void onUgcVideoClick(final UgcVideoMessage ugcVideoMessage) {
588 605 if (ugcVideoMessage.getCnUgcMessage().isSelf()) {
589 606 Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
590 607 intent.putExtra("videoPath", ugcVideoMessage.getCnUgcMessage().getVideoPath());
... ... @@ -593,23 +610,34 @@ public class ChatRoomActivity extends AppCompatActivity implements View.OnClickL
593 610 String videoUuid = ugcVideoMessage.getCnUgcMessage().getFileId() + "_video";
594 611 final String videoPath = FileUtil.getCacheFilePath(videoUuid);
595 612 if (FileUtil.isCacheFileExist(videoUuid)) {
  613 + File file = new File(videoPath);
  614 + if (file.length() < ugcVideoMessage.getCnUgcMessage().getVideo().getSize()) {
  615 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  616 + return;
  617 + }
596 618 Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
597 619 intent.putExtra("videoPath", videoPath);
598 620 startActivity(intent);
599 621 } else {
600   - ugcVideoMessage.getCnUgcMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
601   - @Override
602   - public void onSuccess() {
603   - Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
604   - intent.putExtra("videoPath", videoPath);
605   - startActivity(intent);
606   - }
607   -
608   - @Override
609   - public void onError(int i, String s) {
  622 + if (ugcVideoMessage.isDownloading()) {
  623 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  624 + } else {
  625 + ugcVideoMessage.setDownloading(true);
  626 + ugcVideoMessage.getCnUgcMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
  627 + @Override
  628 + public void onSuccess() {
  629 + ugcVideoMessage.setDownloading(false);
  630 + Intent intent = new Intent(ChatRoomActivity.this, VideoActivity.class);
  631 + intent.putExtra("videoPath", videoPath);
  632 + startActivity(intent);
  633 + }
610 634  
611   - }
612   - });
  635 + @Override
  636 + public void onError(int i, String s) {
  637 + ugcVideoMessage.setDownloading(false);
  638 + }
  639 + });
  640 + }
613 641 }
614 642 }
615 643 }
... ...
app/src/main/java/com/cnlive/im/ui/PrivateActivity.java
... ... @@ -626,7 +626,7 @@ public class PrivateActivity extends AppCompatActivity implements View.OnClickLi
626 626 float moveX = Math.abs(event.getX() - downX);
627 627 float moveY = Math.abs(event.getY() - downY);
628 628 if (moveY > 100) {
629   -// Toast.makeText(ChatRoomActivity.this, "cancel", Toast.LENGTH_SHORT).show();
  629 +// Toast.makeText(PrivateActivity.this, "cancel", Toast.LENGTH_SHORT).show();
630 630 mAudioRecordUtil.cancelRecord();
631 631 } else {
632 632 mAudioRecordUtil.stopRecord(); //结束录音(保存录音文件)
... ... @@ -639,7 +639,7 @@ public class PrivateActivity extends AppCompatActivity implements View.OnClickLi
639 639 float moveXm = Math.abs(event.getX() - downX);
640 640 float moveYm = Math.abs(event.getY() - downY);
641 641 if (moveYm > 100) {
642   -// Toast.makeText(ChatRoomActivity.this, "cancel", Toast.LENGTH_SHORT).show();
  642 +// Toast.makeText(PrivateActivity.this, "cancel", Toast.LENGTH_SHORT).show();
643 643 if (sendMsgLayout.getVisibility() == View.VISIBLE) {
644 644 sendMsgLayout.setVisibility(View.GONE);
645 645 cancelSendLayout.setVisibility(View.VISIBLE);
... ... @@ -734,7 +734,7 @@ public class PrivateActivity extends AppCompatActivity implements View.OnClickLi
734 734 }
735 735  
736 736 @Override
737   - public void onItemClick(VoiceMessage voiceMessage, final AnimationDrawable animationDrawable) {
  737 + public void onItemClick(final VoiceMessage voiceMessage, final AnimationDrawable animationDrawable) {
738 738 if (voiceMessage == null) {
739 739 Toast.makeText(this, "数据异常", Toast.LENGTH_LONG).show();
740 740 return;
... ... @@ -754,23 +754,29 @@ public class PrivateActivity extends AppCompatActivity implements View.OnClickLi
754 754 }
755 755 startVoice(voicePath, animationDrawable);
756 756 } else {
757   - voiceMessage.getCnVoiceMessage().getVoice(voicePath, new IChat.OnDownloadListener() {
758   - @Override
759   - public void onSuccess() {
760   - startVoice(voicePath, animationDrawable);
761   - }
762   -
763   - @Override
764   - public void onError(int i, String s) {
  757 + if (voiceMessage.isDownloading()) {
  758 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  759 + } else {
  760 + voiceMessage.setDownloading(true);
  761 + voiceMessage.getCnVoiceMessage().getVoice(voicePath, new IChat.OnDownloadListener() {
  762 + @Override
  763 + public void onSuccess() {
  764 + voiceMessage.setDownloading(false);
  765 + startVoice(voicePath, animationDrawable);
  766 + }
765 767  
766   - }
767   - });
  768 + @Override
  769 + public void onError(int i, String s) {
  770 + voiceMessage.setDownloading(false);
  771 + }
  772 + });
  773 + }
768 774 }
769 775 }
770 776 }
771 777  
772 778 @Override
773   - public void onVideoClick(VideoMessage videoMessage) {
  779 + public void onVideoClick(final VideoMessage videoMessage) {
774 780 if (videoMessage.getCnVideoMessage().isSelf()) {
775 781 Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
776 782 intent.putExtra("videoPath", videoMessage.getCnVideoMessage().getVideoPath());
... ... @@ -779,30 +785,41 @@ public class PrivateActivity extends AppCompatActivity implements View.OnClickLi
779 785 String videoUuid = videoMessage.getCnVideoMessage().getVideo().getUuid();
780 786 final String videoPath = FileUtil.getCacheFilePath(videoUuid);
781 787 if (FileUtil.isCacheFileExist(videoUuid)) {
  788 + File file = new File(videoPath);
  789 + if (file.length() < videoMessage.getCnVideoMessage().getVideo().getSize()) {
  790 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  791 + return;
  792 + }
782 793 Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
783 794 intent.putExtra("videoPath", videoPath);
784 795 startActivity(intent);
785 796 } else {
786   - videoMessage.getCnVideoMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
787   - @Override
788   - public void onSuccess() {
789   - Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
790   - intent.putExtra("videoPath", videoPath);
791   - startActivity(intent);
792   - }
793   -
794   - @Override
795   - public void onError(int i, String s) {
  797 + if (videoMessage.isDownloading()) {
  798 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  799 + } else {
  800 + videoMessage.setDownloading(true);
  801 + videoMessage.getCnVideoMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
  802 + @Override
  803 + public void onSuccess() {
  804 + videoMessage.setDownloading(false);
  805 + Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
  806 + intent.putExtra("videoPath", videoPath);
  807 + startActivity(intent);
  808 + }
796 809  
797   - }
798   - });
  810 + @Override
  811 + public void onError(int i, String s) {
  812 + videoMessage.setDownloading(false);
  813 + }
  814 + });
  815 + }
799 816 }
800 817 }
801 818  
802 819 }
803 820  
804 821 @Override
805   - public void onUgcVideoClick(UgcVideoMessage ugcVideoMessage) {
  822 + public void onUgcVideoClick(final UgcVideoMessage ugcVideoMessage) {
806 823 if (ugcVideoMessage.getCnUgcMessage().isSelf()) {
807 824 Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
808 825 intent.putExtra("videoPath", ugcVideoMessage.getCnUgcMessage().getVideoPath());
... ... @@ -811,23 +828,34 @@ public class PrivateActivity extends AppCompatActivity implements View.OnClickLi
811 828 String videoUuid = ugcVideoMessage.getCnUgcMessage().getFileId() + "_video";
812 829 final String videoPath = FileUtil.getCacheFilePath(videoUuid);
813 830 if (FileUtil.isCacheFileExist(videoUuid)) {
  831 + File file = new File(videoPath);
  832 + if (file.length() < ugcVideoMessage.getCnUgcMessage().getVideo().getSize()) {
  833 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  834 + return;
  835 + }
814 836 Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
815 837 intent.putExtra("videoPath", videoPath);
816 838 startActivity(intent);
817 839 } else {
818   - ugcVideoMessage.getCnUgcMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
819   - @Override
820   - public void onSuccess() {
821   - Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
822   - intent.putExtra("videoPath", videoPath);
823   - startActivity(intent);
824   - }
825   -
826   - @Override
827   - public void onError(int i, String s) {
  840 + if (ugcVideoMessage.isDownloading()) {
  841 + Toast.makeText(context, "请稍等,正在下载...", Toast.LENGTH_SHORT).show();
  842 + } else {
  843 + ugcVideoMessage.setDownloading(true);
  844 + ugcVideoMessage.getCnUgcMessage().getVideo().getVideo(videoPath, new IChat.OnDownloadListener() {
  845 + @Override
  846 + public void onSuccess() {
  847 + ugcVideoMessage.setDownloading(false);
  848 + Intent intent = new Intent(PrivateActivity.this, VideoActivity.class);
  849 + intent.putExtra("videoPath", videoPath);
  850 + startActivity(intent);
  851 + }
828 852  
829   - }
830   - });
  853 + @Override
  854 + public void onError(int i, String s) {
  855 + ugcVideoMessage.setDownloading(false);
  856 + }
  857 + });
  858 + }
831 859 }
832 860 }
833 861 }
... ...