5959import java .util .Map ;
6060import java .util .Set ;
6161
62+ import static com .netease .nimlib .sdk .NIMClient .getService ;
63+
6264/**
6365 * Created by dowin on 2017/5/10.
6466 */
@@ -83,6 +85,8 @@ public class SessionService {
8385 private Handler handler ;
8486 private boolean mute = false ;
8587
88+ private boolean canSended = true ;
89+
8690 private SessionService () {
8791 }
8892
@@ -507,7 +511,7 @@ private void registerObservers(boolean register) {
507511 return ;
508512 }
509513 hasRegister = register ;
510- MsgServiceObserve service = NIMClient . getService (MsgServiceObserve .class );
514+ MsgServiceObserve service = getService (MsgServiceObserve .class );
511515 service .observeReceiveMessage (incomingMessageObserver , register );
512516 service .observeMessageReceipt (messageReceiptObserver , register );
513517
@@ -551,11 +555,16 @@ public void startSession(Handler handler, String sessionId, String type) {
551555 sessionTypeEnum = SessionUtil .getSessionType (type );
552556
553557 if (sessionTypeEnum == SessionTypeEnum .P2P ) {
558+ canSended = NIMClient .getService (FriendService .class ).isMyFriend (sessionId );
554559 this .mute = !NIMClient .getService (FriendService .class ).isNeedMessageNotify (sessionId );
555560 } else {
556561 Team t = TeamDataCache .getInstance ().getTeamById (sessionId );
557- if (t != null )
562+ if (t != null ) {
558563 this .mute = t .mute ();
564+ canSended = t .isMyTeam ();
565+ } else {
566+ canSended = false ;
567+ }
559568 }
560569 registerObservers (true );
561570 getMsgService ().setChattingAccount (sessionId , sessionTypeEnum );
@@ -811,13 +820,18 @@ public MsgService getMsgService() {
811820 if (msgService == null ) {
812821 synchronized (SessionService .class ) {
813822 if (msgService == null ) {
814- msgService = NIMClient . getService (MsgService .class );
823+ msgService = getService (MsgService .class );
815824 }
816825 }
817826 }
818827 return msgService ;
819828 }
820829
830+ public void updateMessage (final IMMessage message , MsgStatusEnum statusEnum ) {
831+ message .setStatus (statusEnum );
832+ getMsgService ().updateIMMessageStatus (message );
833+ }
834+
821835 public void sendMessage (final IMMessage message , final OnSendMessageListener onSendMessageListener ) {
822836
823837
@@ -873,7 +887,7 @@ private boolean isOriginImageHasDownloaded(final IMMessage message) {
873887 }
874888
875889 void observerAttachProgress (boolean register ) {
876- NIMClient . getService (MsgServiceObserve .class ).observeAttachmentProgress (new Observer <AttachmentProgress >() {
890+ getService (MsgServiceObserve .class ).observeAttachmentProgress (new Observer <AttachmentProgress >() {
877891 @ Override
878892 public void onEvent (AttachmentProgress attachmentProgress ) {
879893 ReactCache .emit (ReactCache .observeAttachmentProgress , ReactCache .createAttachmentProgress (attachmentProgress ));
@@ -887,7 +901,7 @@ public void downloadAttachment(IMMessage message, boolean isThumb) {
887901 if (isOriginImageHasDownloaded (message )) {
888902 return ;
889903 }
890- AbortableFuture future = NIMClient . getService (MsgService .class ).downloadAttachment (message , isThumb );
904+ AbortableFuture future = getService (MsgService .class ).downloadAttachment (message , isThumb );
891905 }
892906
893907 public interface OnSendMessageListener {
0 commit comments