@@ -365,7 +365,7 @@ private void OnSelectConversation(ChatChannel.ChannelId channelId)
365365 if ( TryGetView ( out var view ) )
366366 {
367367 view . CurrentChannelId = channelId ;
368-
368+ callButtonController . SetCallButtonVisibility ( ! channelId . Equals ( ChatChannel . NEARBY_CHANNEL_ID ) ) ;
369369 if ( channelId . Equals ( ChatChannel . NEARBY_CHANNEL_ID ) )
370370 {
371371 view . SetupViewWithUserState ( ChatUserStateUpdater . ChatUserState . CONNECTED ) ;
@@ -396,6 +396,22 @@ private async UniTaskVoid UpdateChatUserStateAsync(string userId, bool updateToo
396396
397397 view . UpdateConversationToolbarStatusIconForUser ( userId , offline ? OnlineStatus . OFFLINE : OnlineStatus . ONLINE ) ;
398398 }
399+
400+ CallButtonController . OtherUserCallStatus callStatus = CallButtonController . OtherUserCallStatus . USER_OFFLINE ;
401+
402+ switch ( userState )
403+ {
404+ case ChatUserStateUpdater . ChatUserState . CONNECTED :
405+ callStatus = CallButtonController . OtherUserCallStatus . USER_AVAILABLE ;
406+ break ;
407+ case ChatUserStateUpdater . ChatUserState . DISCONNECTED :
408+ callStatus = CallButtonController . OtherUserCallStatus . USER_OFFLINE ;
409+ break ;
410+ case ChatUserStateUpdater . ChatUserState . PRIVATE_MESSAGES_BLOCKED :
411+ callStatus = CallButtonController . OtherUserCallStatus . USER_REJECTS_CALLS ;
412+ break ;
413+ }
414+ callButtonController . SetCallStatusForUser ( callStatus , userId ) ;
399415 }
400416
401417#endregion
@@ -721,7 +737,7 @@ private void SubscribeToEvents()
721737 view . CurrentChannelChanged += OnViewCurrentChannelChangedAsync ;
722738 view . ConversationSelected += OnSelectConversation ;
723739 view . DeleteChatHistoryRequested += OnViewDeleteChatHistoryRequested ;
724-
740+
725741 }
726742
727743 chatHistory . ChannelAdded += OnChatHistoryChannelAdded ;
0 commit comments