@@ -188,7 +188,7 @@ public void error(GliaException ex) {
188
188
189
189
private Disposable disposable = null ;
190
190
191
- // pending photoCaptureFileUri - need to move some place better
191
+ // TODO pending photoCaptureFileUri - need to move some place better
192
192
private Uri photoCaptureFileUri = null ;
193
193
194
194
public ChatController (
@@ -725,7 +725,7 @@ private void appendHistoryChatItem(List<ChatItem> currentChatItems, ChatMessage
725
725
appendHistoryMessage (currentChatItems , message );
726
726
addVisitorAttachmentItemsToChatItems (currentChatItems , message );
727
727
} else if (message .getSender () == Chat .Participant .OPERATOR ) {
728
- changeLastOperatorMessages (currentChatItems , message );
728
+ appendOperatorMessage (currentChatItems , message );
729
729
}
730
730
}
731
731
@@ -752,7 +752,7 @@ private void appendMessageItem(List<ChatItem> currentChatItems, ChatMessage mess
752
752
}
753
753
754
754
private void onOperatorMessageReceived (List <ChatItem > currentChatItems , ChatMessage message ) {
755
- changeLastOperatorMessages (currentChatItems , message );
755
+ appendOperatorMessage (currentChatItems , message );
756
756
appendMessagesNotSeen ();
757
757
changeChatInputMode (message );
758
758
}
@@ -864,87 +864,90 @@ private void setDelivered(List<ChatItem> currentChatItems, int i, VisitorAttachm
864
864
);
865
865
}
866
866
867
- private void changeLastOperatorMessages (List <ChatItem > currentChatItems , ChatMessage message ) {
868
- replaceLastChatHeadItem (currentChatItems );
869
- addOperatorDownloadableItems (currentChatItems , message );
870
- addLastMessageItem (currentChatItems , message );
867
+ private void appendOperatorMessage (List <ChatItem > currentChatItems , ChatMessage message ) {
868
+ setLastOperatorItemChatHeadVisibility (currentChatItems , false );
869
+ appendOperatorMessageItem (currentChatItems , message );
870
+ appendOperatorAttachmentItems (currentChatItems , message );
871
+ setLastOperatorItemChatHeadVisibility (currentChatItems , true );
871
872
}
872
873
873
- private void replaceLastChatHeadItem (List <ChatItem > currentChatItems ) {
874
+ private void setLastOperatorItemChatHeadVisibility (List <ChatItem > currentChatItems , boolean showChatHead ) {
874
875
if (!currentChatItems .isEmpty ()) {
875
876
ChatItem lastItem = currentChatItems .get (currentChatItems .size () - 1 );
876
-
877
877
if (lastItem instanceof OperatorMessageItem ) {
878
878
OperatorMessageItem lastItemInView = (OperatorMessageItem ) lastItem ;
879
879
currentChatItems .remove (lastItemInView );
880
- currentChatItems .add (new OperatorMessageItem (
881
- lastItemInView .getId (),
882
- lastItemInView .operatorProfileImgUrl ,
883
- false ,
884
- lastItemInView .content ,
885
- lastItemInView .singleChoiceOptions ,
886
- lastItemInView .selectedChoiceIndex ,
887
- lastItemInView .choiceCardImageUrl
888
- ));
880
+ currentChatItems .add (
881
+ new OperatorMessageItem (
882
+ lastItemInView .getId (),
883
+ lastItemInView .operatorProfileImgUrl ,
884
+ showChatHead ,
885
+ lastItemInView .content ,
886
+ lastItemInView .singleChoiceOptions ,
887
+ lastItemInView .selectedChoiceIndex ,
888
+ lastItemInView .choiceCardImageUrl
889
+ )
890
+ );
889
891
} else if (lastItem instanceof OperatorAttachmentItem ) {
890
892
OperatorAttachmentItem lastItemInView = (OperatorAttachmentItem ) lastItem ;
891
893
currentChatItems .remove (lastItemInView );
892
- currentChatItems .add (new OperatorAttachmentItem (
893
- lastItemInView .getId (),
894
- lastItemInView .getViewType (),
895
- true ,
896
- lastItemInView .attachmentFile ,
897
- lastItemInView .operatorProfileImgUrl , false , false ));
894
+ currentChatItems .add (
895
+ new OperatorAttachmentItem (
896
+ lastItemInView .getId (),
897
+ lastItemInView .getViewType (),
898
+ showChatHead ,
899
+ lastItemInView .attachmentFile ,
900
+ lastItemInView .operatorProfileImgUrl ,
901
+ false ,
902
+ false
903
+ )
904
+ );
898
905
}
899
906
}
900
907
}
901
908
902
- private void addOperatorDownloadableItems (List <ChatItem > currentChatItems , ChatMessage message ) {
909
+ private void appendOperatorAttachmentItems (List <ChatItem > currentChatItems , ChatMessage message ) {
903
910
MessageAttachment attachment = message .getAttachment ();
904
911
if (attachment instanceof FilesAttachment ) {
905
912
FilesAttachment filesAttachment = (FilesAttachment ) attachment ;
906
913
AttachmentFile [] files = filesAttachment .getFiles ();
907
914
908
- for (int i = 0 ; i < files .length ; i ++) {
909
- AttachmentFile file = files [i ];
910
- boolean showChatHead = i == files .length - 1 ;
911
- String mimeType = file .getContentType ();
912
- if (mimeType .startsWith ("image" )) {
913
- currentChatItems .add (
914
- new OperatorAttachmentItem (
915
- message .getId (),
916
- ChatAdapter .OPERATOR_IMAGE_VIEW_TYPE ,
917
- showChatHead ,
918
- file ,
919
- chatState .operatorProfileImgUrl , false , false )
920
- );
915
+ for (AttachmentFile file : files ) {
916
+ int viewType ;
917
+ if (file .getContentType ().startsWith ("image" )) {
918
+ viewType = ChatAdapter .OPERATOR_IMAGE_VIEW_TYPE ;
921
919
} else {
922
- currentChatItems .add (
923
- new OperatorAttachmentItem (
924
- message .getId (),
925
- ChatAdapter .OPERATOR_FILE_VIEW_TYPE ,
926
- showChatHead ,
927
- file ,
928
- chatState .operatorProfileImgUrl , false , false )
929
- );
920
+ viewType = ChatAdapter .OPERATOR_FILE_VIEW_TYPE ;
930
921
}
931
-
922
+ currentChatItems .add (
923
+ new OperatorAttachmentItem (
924
+ message .getId (),
925
+ viewType ,
926
+ false ,
927
+ file ,
928
+ chatState .operatorProfileImgUrl ,
929
+ false ,
930
+ false
931
+ )
932
+ );
932
933
}
933
934
}
934
935
}
935
936
936
- private void addLastMessageItem (List <ChatItem > currentChatItems , ChatMessage message ) {
937
+ private void appendOperatorMessageItem (List <ChatItem > currentChatItems , ChatMessage message ) {
937
938
if (!message .getContent ().equals ("" )) {
938
939
MessageAttachment messageAttachment = message .getAttachment ();
939
- currentChatItems .add (new OperatorMessageItem (
940
- message .getId (),
941
- chatState .operatorProfileImgUrl ,
942
- true ,
943
- message .getContent (),
944
- getSingleChoiceAttachmentOptions (messageAttachment ),
945
- null ,
946
- getSingleChoiceAttachmentImgUrl (messageAttachment )
947
- ));
940
+ currentChatItems .add (
941
+ new OperatorMessageItem (
942
+ message .getId (),
943
+ chatState .operatorProfileImgUrl ,
944
+ false ,
945
+ message .getContent (),
946
+ getSingleChoiceAttachmentOptions (messageAttachment ),
947
+ null ,
948
+ getSingleChoiceAttachmentImgUrl (messageAttachment )
949
+ )
950
+ );
948
951
}
949
952
}
950
953
0 commit comments