@@ -413,12 +413,16 @@ private static void handleUpdatePresence(byte[] data, RemoteEndpoint endpoint)
413413 if ( f != null )
414414 {
415415 var pa = p . addresses [ 0 ] ;
416- // TODO use actual wallet address once Presence hostname contains such address
417- f . relayNode = new Peer ( pa . address , null , pa . lastSeenTime , 0 , 0 , 0 ) ;
418- f . updatedStreamingNodes = pa . lastSeenTime ;
419- if ( UIHelpers . isChatScreenDisplayed ( f ) )
416+ if ( f . lastSeenTime < pa . lastSeenTime )
420417 {
421- StreamClientManager . connectTo ( f . relayNode . hostname , f . relayNode . walletAddress ) ;
418+ // TODO use actual wallet address once Presence hostname contains such address
419+ f . relayNode = new Peer ( pa . address , null , pa . lastSeenTime , 0 , 0 , 0 ) ;
420+ f . updatedStreamingNodes = pa . lastSeenTime ;
421+ f . lastSeenTime = pa . lastSeenTime ;
422+ if ( UIHelpers . isChatScreenDisplayed ( f ) )
423+ {
424+ StreamClientManager . connectTo ( f . relayNode . hostname , f . relayNode . walletAddress ) ;
425+ }
422426 }
423427 }
424428 }
@@ -444,12 +448,16 @@ private static void handleKeepAlivePresence(byte[] data, RemoteEndpoint endpoint
444448 if ( f != null )
445449 {
446450 var pa = p . addresses [ 0 ] ;
447- // TODO use actual wallet address once Presence hostname contains such address
448- f . relayNode = new Peer ( pa . address , null , pa . lastSeenTime , 0 , 0 , 0 ) ;
449- f . updatedStreamingNodes = pa . lastSeenTime ;
450- if ( UIHelpers . isChatScreenDisplayed ( f ) )
451+ if ( f . lastSeenTime < pa . lastSeenTime )
451452 {
452- StreamClientManager . connectTo ( f . relayNode . hostname , f . relayNode . walletAddress ) ;
453+ // TODO use actual wallet address once Presence hostname contains such address
454+ f . relayNode = new Peer ( pa . address , null , pa . lastSeenTime , 0 , 0 , 0 ) ;
455+ f . updatedStreamingNodes = pa . lastSeenTime ;
456+ f . lastSeenTime = pa . lastSeenTime ;
457+ if ( UIHelpers . isChatScreenDisplayed ( f ) )
458+ {
459+ StreamClientManager . connectTo ( f . relayNode . hostname , f . relayNode . walletAddress ) ;
460+ }
453461 }
454462 }
455463 }
@@ -522,7 +530,7 @@ static void handleSectorNodes(byte[] data, RemoteEndpoint endpoint)
522530 var friends = FriendList . getFriendsBySectorPrefix ( prefix ) ;
523531 foreach ( var friend in friends )
524532 {
525- friend . updatedSectorNodes = Clock . getNetworkTimestamp ( ) ;
533+ friend . updatedSectorNodes = Clock . getTimestamp ( ) ;
526534 friend . sectorNodes = peers ;
527535 }
528536 }
0 commit comments