@@ -144,6 +144,7 @@ public class ClientService extends Service implements SdtLogic.ICallBack,
144144 private RemoteCallbackList <IOnChannelInfoUpdateListener > onChannelInfoUpdateListenerRemoteCallbackList = new WfcRemoteCallbackList <>();
145145 private RemoteCallbackList <IOnGroupMembersUpdateListener > onGroupMembersUpdateListenerRemoteCallbackList = new WfcRemoteCallbackList <>();
146146 private RemoteCallbackList <IOnConferenceEventListener > onConferenceEventListenerRemoteCallbackList = new WfcRemoteCallbackList <>();
147+ private RemoteCallbackList <IOnTrafficDataListener > onTrafficDataListenerRemoteCallbackList = new WfcRemoteCallbackList <>();
147148
148149 private AppLogic .AccountInfo accountInfo = new AppLogic .AccountInfo ();
149150 // public final String DEVICE_NAME = android.os.Build.MANUFACTURER + "-" + android.os.Build.MODEL;
@@ -237,6 +238,11 @@ public void setOnConferenceEventListener(IOnConferenceEventListener listener) th
237238 onConferenceEventListenerRemoteCallbackList .register (listener );
238239 }
239240
241+ @ Override
242+ public void setOnTrafficDataListener (IOnTrafficDataListener listener ) throws RemoteException {
243+ onTrafficDataListenerRemoteCallbackList .register (listener );
244+ }
245+
240246 @ Override
241247 public void setOnGroupMembersUpdateListener (IOnGroupMembersUpdateListener listener ) throws RemoteException {
242248 onGroupMembersUpdateListenerRemoteCallbackList .register (listener );
@@ -274,7 +280,7 @@ public void disconnect(boolean disablePush, boolean clearSession) throws RemoteE
274280 @ Override
275281 public void setForeground (int isForeground ) throws RemoteException {
276282 BaseEvent .onForeground (isForeground == 1 );
277- if (isForeground == 1 && mConnectionStatus != ConnectionStatusConnected && mConnectionStatus != ConnectionStatusReceiveing ) {
283+ if (isForeground == 1 && mConnectionStatus != ConnectionStatusConnected && mConnectionStatus != ConnectionStatusReceiveing ) {
278284 onNetworkChange ();
279285 }
280286 }
@@ -365,11 +371,11 @@ private ProtoMessage convertMessage(cn.wildfirechat.message.Message msg) {
365371 MessagePayload payload = msg .content .encode ();
366372 protoMessage .setContent (payload .toProtoContent ());
367373 protoMessage .setMessageId (msg .messageId );
368- if (msg .direction == null ){
374+ if (msg .direction == null ) {
369375 msg .direction = MessageDirection .Send ;
370376 }
371377 protoMessage .setDirection (msg .direction .ordinal ());
372- if (msg .status == null ){
378+ if (msg .status == null ) {
373379 msg .status = MessageStatus .Sending ;
374380 }
375381 protoMessage .setStatus (msg .status .value ());
@@ -390,7 +396,7 @@ private class SendMessageCallback implements ProtoLogic.ISendMessageCallback {
390396 @ Override
391397 public void onSuccess (long messageUid , long timestamp ) {
392398 try {
393- if (callback != null )
399+ if (callback != null )
394400 callback .onSuccess (messageUid , timestamp );
395401 } catch (RemoteException e ) {
396402 e .printStackTrace ();
@@ -400,7 +406,7 @@ public void onSuccess(long messageUid, long timestamp) {
400406 @ Override
401407 public void onFailure (int errorCode ) {
402408 try {
403- if (callback != null )
409+ if (callback != null )
404410 callback .onFailure (errorCode );
405411 } catch (RemoteException e ) {
406412 e .printStackTrace ();
@@ -410,7 +416,7 @@ public void onFailure(int errorCode) {
410416 @ Override
411417 public void onPrepared (long messageId , long savedTime ) {
412418 try {
413- if (callback != null )
419+ if (callback != null )
414420 callback .onPrepared (messageId , savedTime );
415421 } catch (RemoteException e ) {
416422 e .printStackTrace ();
@@ -420,7 +426,7 @@ public void onPrepared(long messageId, long savedTime) {
420426 @ Override
421427 public void onProgress (long uploaded , long total ) {
422428 try {
423- if (callback != null )
429+ if (callback != null )
424430 callback .onProgress (uploaded , total );
425431 } catch (RemoteException e ) {
426432 e .printStackTrace ();
@@ -430,7 +436,7 @@ public void onProgress(long uploaded, long total) {
430436 @ Override
431437 public void onMediaUploaded (String remoteUrl ) {
432438 try {
433- if (callback != null )
439+ if (callback != null )
434440 callback .onMediaUploaded (remoteUrl );
435441 } catch (RemoteException e ) {
436442 e .printStackTrace ();
@@ -611,7 +617,7 @@ public void getUserMessagesEx(String userId, int[] conversationTypes, int[] line
611617
612618 @ Override
613619 public void getRemoteMessages (Conversation conversation , int [] contentTypes , long beforeMessageUid , int count , IGetRemoteMessageCallback callback ) throws RemoteException {
614- if (contentTypes == null ) {
620+ if (contentTypes == null ) {
615621 contentTypes = new int [0 ];
616622 }
617623
@@ -648,9 +654,9 @@ public void getRemoteMessage(long messageUid, IGetRemoteMessageCallback callback
648654 @ Override
649655 public void onSuccess (ProtoMessage [] protoMessages ) {
650656 SafeIPCMessageEntry entry = buildSafeIPCMessages (protoMessages , 0 , false );
651- if (callback != null ) {
657+ if (callback != null ) {
652658 try {
653- if (entry == null || entry .messages == null || entry .messages .isEmpty ()) {
659+ if (entry == null || entry .messages == null || entry .messages .isEmpty ()) {
654660 callback .onFailure (245 );
655661 } else {
656662 callback .onSuccess (entry .messages );
@@ -663,7 +669,7 @@ public void onSuccess(ProtoMessage[] protoMessages) {
663669
664670 @ Override
665671 public void onFailure (int i ) {
666- if (callback != null ) {
672+ if (callback != null ) {
667673 try {
668674 callback .onFailure (i );
669675 } catch (RemoteException e ) {
@@ -901,7 +907,7 @@ public void clearAllUnreadStatus() throws RemoteException {
901907 @ Override
902908 public boolean markAsUnRead (int conversationType , String target , int line , boolean sync ) throws RemoteException {
903909 long messageUid = ProtoLogic .setLastReceivedMessageUnRead (conversationType , target , line , 0 , 0 );
904- if (messageUid > 0 && sync ) {
910+ if (messageUid > 0 && sync ) {
905911 MarkUnreadMessageContent content = new MarkUnreadMessageContent (messageUid , ProtoLogic .getMessageByUid (messageUid ).getTimestamp ());
906912 Message message = new Message ();
907913 message .conversation = new Conversation (Conversation .ConversationType .type (conversationType ), target , line );
@@ -953,7 +959,7 @@ public void setConversationTop(int conversationType, String target, int line, bo
953959 @ Override
954960 public void setConversationDraft (int conversationType , String target , int line , String draft ) throws RemoteException {
955961 ConversationInfo conversationInfo = getConversation (conversationType , target , line );
956- if (conversationInfo == null ){
962+ if (conversationInfo == null ) {
957963 return ;
958964 }
959965 if ((TextUtils .isEmpty (conversationInfo .draft ) && TextUtils .isEmpty (draft )) || TextUtils .equals (conversationInfo .draft , draft )) {
@@ -2978,7 +2984,20 @@ public void onConnectToServer(String host, String ip, int port) {
29782984
29792985 @ Override
29802986 public void onTrafficData (long send , long recv ) {
2981- Log .d ("client" , "on traffic data(" + send + ", " + recv + ")" );
2987+ handler .post (() -> {
2988+ int i = onTrafficDataListenerRemoteCallbackList .beginBroadcast ();
2989+ IOnTrafficDataListener listener ;
2990+ while (i > 0 ) {
2991+ i --;
2992+ listener = onTrafficDataListenerRemoteCallbackList .getBroadcastItem (i );
2993+ try {
2994+ listener .onTrafficData (send , recv );
2995+ } catch (RemoteException e ) {
2996+ e .printStackTrace ();
2997+ }
2998+ }
2999+ onTrafficDataListenerRemoteCallbackList .finishBroadcast ();
3000+ });
29823001 }
29833002
29843003 @ Override
@@ -3093,16 +3112,16 @@ public void onReceiveMessage(List<ProtoMessage> messages, boolean hasMore) {
30933112 if (messages .isEmpty ()) {
30943113 return ;
30953114 }
3096- for (ProtoMessage message : messages ) {
3115+ for (ProtoMessage message : messages ) {
30973116 filterNewMessage (message );
30983117 }
30993118 handler .post (() -> onReceiveMessageInternal (messages .toArray (new ProtoMessage [0 ])));
31003119 }
31013120
31023121 private void filterNewMessage (ProtoMessage protoMessage ) {
3103- if (protoMessage .getContent ().getType () == ContentType_Mark_Unread_Sync && userId != null && userId .equals (protoMessage .getFrom ())) {
3122+ if (protoMessage .getContent ().getType () == ContentType_Mark_Unread_Sync && userId != null && userId .equals (protoMessage .getFrom ())) {
31043123 Message msg = convertProtoMessage (protoMessage );
3105- MarkUnreadMessageContent content = (MarkUnreadMessageContent )msg .content ;
3124+ MarkUnreadMessageContent content = (MarkUnreadMessageContent ) msg .content ;
31063125 ProtoLogic .setLastReceivedMessageUnRead (msg .conversation .type .getValue (), msg .conversation .target , msg .conversation .line , content .getMessageUid (), content .getTimestamp ());
31073126 }
31083127 }
0 commit comments