Commit a37e83450c700275fc89d7d51d2c9ea98dea608b
1 parent
74affc6a
添加缓存逻辑判断
Showing
3 changed files
with
141 additions
and
76 deletions
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 | } | ... | ... |