void OnProjectTabButtonClicked(ProjectServerType projectServerType)
        {
            var data = UIStateManager.current.stateData.landingScreenFilterData;

            data.projectServerType = projectServerType;
            Dispatcher.Dispatch(Payload <ActionTypes> .From(ActionTypes.SetLandingScreenFilter, data));
        }
 public void SelectButtonType(ProjectServerType projectServerType)
 {
     foreach (var projectTabButton in m_ProjectTabs)
     {
         projectTabButton.SelectButton(projectTabButton.type == projectServerType);
     }
 }
        public void InitProjectItem(Project project)
        {
            m_project = project;

            m_TitleText.text = project.name;

            m_DescriptionText.text = project.description;
            if (project.description == "Local")
            {
                m_ProjectServerType = ProjectServerType.Local;
            }
            else if (project.description == "Cloud")
            {
                m_ProjectServerType = ProjectServerType.Cloud;
            }
            else if (project.description == "Network")
            {
                m_ProjectServerType = ProjectServerType.Network;
            }

            m_DateText.text = project.lastPublished.ToShortDateString();

            bool isConnected = project.isAvailableOnline;

            m_ConnectedImage.gameObject.SetActive(isConnected);
            m_DisconnectedImage.gameObject.SetActive(!isConnected);
        }
        void OnStateDataChanged(UIStateData data)
        {
            if (data.selectedProjectOption != m_CurrentSelectedProject)
            {
                if (m_LastHighlightedItem != null)
                {
                    m_LastHighlightedItem.SetHighlight(false);
                    m_LastHighlightedItem = null;
                }

                if (data.selectedProjectOption != Project.Empty)
                {
                    var projectListItem = m_ProjectListItems.SingleOrDefault(e => e.room.project == data.selectedProjectOption);
                    if (projectListItem != null)
                    {
                        projectListItem.SetHighlight(true);
                        m_LastHighlightedItem = projectListItem;
                    }

                    m_ProjectOption.transform.SetParent(m_ScrollRect.transform);
                    m_ProjectOption.transform.localPosition = GetOptionPosition(projectListItem);
                    m_ProjectOption.transform.SetParent(m_ScrollRect.transform.parent);

                    m_ScrollRect.StopMovement();
                    m_ProjectOption.InitProjectOption(data.selectedProjectOption);
                    m_ProjectOption.gameObject.SetActive(true);
                    m_TapDetector.SetActive(true);
                }
                else
                {
                    m_ProjectOption.gameObject.SetActive(false);
                    m_TapDetector.SetActive(false);
                }
                m_CurrentSelectedProject = data.selectedProjectOption;
                m_CurrentOptionIndex     = data.projectOptionIndex;
            }
            else if (data.projectOptionIndex != m_CurrentOptionIndex)
            {
                m_ProjectOption.InitProjectOption(data.selectedProjectOption);
                m_CurrentOptionIndex = data.projectOptionIndex;
            }

            if (data.landingScreenFilterData != m_CurrentFilterData)
            {
                m_ScrollRect.verticalNormalizedPosition = 1;
                FilterProjectList(data.landingScreenFilterData);
                m_CurrentFilterData = data.landingScreenFilterData;

                if (data.landingScreenFilterData.projectServerType != m_CurrentServerType)
                {
                    m_ProjectTabController.SelectButtonType(data.landingScreenFilterData.projectServerType);
                    m_CurrentServerType = data.landingScreenFilterData.projectServerType;
                }
            }

            UpdateLayout(data);
        }
 void OnProjectTabButtonClicked(ProjectServerType projectServerType)
 {
     projectTabButtonClicked?.Invoke(projectServerType);
 }