void RefreshUI() { if (m_ContentContainer == null) { return; } m_ContentContainer.Clear(); m_CurrentVisual?.Dispose(); var projectState = new ProjectStateRequest().GetProjectState(); if (!EditorGameServiceSettingsProvider.IsUserOnline(projectState)) { m_CurrentVisual = CreateVisual <OfflineVisual>(RefreshUI); } else if (!EditorGameServiceSettingsProvider.IsUserLoggedIn(projectState)) { m_CurrentVisual = CreateVisual <LoggedOutVisual>(RefreshUI); } else if (!EditorGameServiceSettingsProvider.IsProjectBound(projectState) || EditorGameServiceRegistry.Instance.UserRoleHandler.CurrentUserRole == UserRole.Unknown) { m_CurrentVisual = CreateVisual <ProjectBindAndUserRequestVisual>(OnUserRoleRequestVisualDone); } else { ShowPostUserRequestUi(projectState); } EditorGameServiceSettingsProvider.TranslateStringsInTree(m_ContentContainer); }
void SetupUserRequest(VisualElement buttonsContainer, ProjectState projectState) { CreateVisual(out m_UserRequestVisual, out m_UserRequestContainer, buttonsContainer, ServiceActivationPopupVisual.UxmlClassNames.UserRequestContainer, EndVisual); if (EditorGameServiceSettingsProvider.IsProjectBound(projectState)) { ShowUserRequest(); } }
void SetupProjectBind(VisualElement buttonsContainer, ProjectState projectState) { CreateVisual(out m_ProjectBindVisual, out m_ProjectBindContainer, buttonsContainer, ServiceActivationPopupVisual.UxmlClassNames.ProjectBindContainer, OnProjectBindDone); VisualElementHelper.SetDisplayStyle(m_ProjectBindContainer, EditorGameServiceSettingsProvider.IsProjectBound(projectState) ? DisplayStyle.None : DisplayStyle.Flex); }
void OnUserRoleRequestVisualDone() { if (EditorGameServiceSettingsProvider.IsUserAllowedToEditCoppaCompliance( EditorGameServiceRegistry.Instance.UserRoleHandler.CurrentUserRole)) { RefreshUI(); } else { Done?.Invoke(); } }
void ShowPostUserRequestUi(ProjectState projectState) { if (EditorGameServiceSettingsProvider.IsUserAllowedToEditCoppaCompliance( EditorGameServiceRegistry.Instance.UserRoleHandler.CurrentUserRole)) { ShowCoppaComplianceOrActivationConfirmation(projectState); } else { m_CurrentVisual = CreateVisual <InsufficientPermissionVisual>(OnEndConfirmationDone); } }
bool ShouldShowCoppaCompliance() { bool output = false; foreach (var operateService in m_Services) { if (!EditorGameServiceSettingsProvider.IsCoppaComplianceMet(operateService, CloudProjectSettings.coppaCompliance)) { output = true; break; } } return(output); }
void OnUserRoleRequestCompleted(UserRole userRole) { EditorGameServiceRegistry.Instance.UserRoleHandler.UserRoleRequestCompleted -= OnUserRoleRequestCompleted; UserRole = userRole; if (EditorGameServiceSettingsProvider.IsUserAllowedToEditCoppaCompliance(UserRole)) { Done?.Invoke(); } else { SetupLabelText(Messages.InsufficientPermission); if (m_NoPermissionButton != null) { m_NoPermissionButton.style.display = DisplayStyle.Flex; m_NoPermissionButton.clickable.clicked += OnNoPermissionButtonClicked; } } }