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); }
/// <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(); }
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; } }