Beispiel #1
0
 private void ProcessActiveElements(MenuConfigFlags flags)
 {
     headerContainer.SetActive((flags & headerFlags) != 0);
     userName.gameObject.SetActive((flags & MenuConfigFlags.Name) != 0);
     friendshipContainer.SetActive((flags & MenuConfigFlags.Friendship) != 0);
     deleteFriendButton.gameObject.SetActive((flags & MenuConfigFlags.Friendship) != 0);
     passportButton.gameObject.SetActive((flags & MenuConfigFlags.Passport) != 0);
     blockButton.gameObject.SetActive((flags & MenuConfigFlags.Block) != 0);
     reportButton.gameObject.SetActive((flags & MenuConfigFlags.Report) != 0);
     messageButton.gameObject.SetActive((flags & MenuConfigFlags.Message) != 0);
 }
Beispiel #2
0
 /// <summary>
 /// Show context menu
 /// </summary>
 /// <param name="userId"> user id</param>
 /// <param name="configFlags">set buttons to enable in menu</param>
 public void Show(string userId, MenuConfigFlags configFlags)
 {
     this.userId = userId;
     ProcessActiveElements(configFlags);
     Setup(userId, configFlags);
     if (currentConfirmationDialog == null && confirmationDialog != null)
     {
         SetConfirmationDialog(confirmationDialog);
     }
     gameObject.SetActive(true);
     OnShowMenu?.Invoke();
 }
Beispiel #3
0
    private void Setup(string userId, MenuConfigFlags configFlags)
    {
        this.userId = userId;

        UserProfile profile       = UserProfileController.userProfilesCatalog.Get(userId);
        bool        userHasWallet = profile?.hasConnectedWeb3 ?? false;

        if (!userHasWallet || !UserProfile.GetOwnUserProfile().hasConnectedWeb3)
        {
            configFlags &= ~usesFriendsApiFlags;
        }

        this.currentConfigFlags = configFlags;
        ProcessActiveElements(configFlags);

        if ((configFlags & MenuConfigFlags.Block) != 0)
        {
            isBlocked = UserProfile.GetOwnUserProfile().blocked.Contains(userId);
            UpdateBlockButton();
        }
        if ((configFlags & MenuConfigFlags.Name) != 0)
        {
            string name = profile?.userName;
            userName.text = name;
        }
        if ((configFlags & usesFriendsApiFlags) != 0 && FriendsController.i)
        {
            if (FriendsController.i.friends.TryGetValue(userId, out FriendsController.UserStatus status))
            {
                SetupFriendship(status.friendshipStatus);
            }
            else
            {
                SetupFriendship(FriendshipStatus.NONE);
            }
            FriendsController.i.OnUpdateFriendship -= OnFriendActionUpdate;
            FriendsController.i.OnUpdateFriendship += OnFriendActionUpdate;
        }
    }