예제 #1
0
        void OnProjectStatusChanged(Project project, ProjectsManager.Status status)
        {
            if (project != m_Project)
            {
                return;
            }

            Refresh(status);
        }
 static void OnProjectStatusChanged(Project project, ProjectsManager.Status status)
 {
     projectStatusChanged?.Invoke(project, status);
 }
예제 #3
0
        void Refresh(ProjectsManager.Status status)
        {
            if (m_Project == Project.Empty)
            {
                m_NameText.text         = string.Empty;
                m_OrganizationText.text = string.Empty;
                m_DateText.text         = string.Empty;
                m_ServerText.text       = string.Empty;

                m_DownloadButton.interactable = false;
                m_DeleteButton.interactable   = false;
                return;
            }

            var organizationName = m_Project.UnityProject.Organization?.Name;

            if (string.IsNullOrEmpty(organizationName))
            {
                organizationName = "None";
            }

            m_NameText.text         = m_Project.name;
            m_ServerText.text       = m_Project.description;
            m_OrganizationText.text = organizationName;

            if (m_Project is EmbeddedProject)
            {
                m_DateText.text = "-";
                SetButtonVisible(m_DownloadButton, false);
                SetButtonVisible(m_DeleteButton, false);
            }
            else
            {
                var isLocal   = m_Project.IsLocal;
                var hasUpdate = m_Project.hasUpdate;

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

                var displayDeleteButton = false;

                switch (status)
                {
                case ProjectsManager.Status.QueuedForDownload:
                    m_DownloadButtonLabel.text    = "Downloading (Queued)";
                    m_DownloadButton.interactable = false;
                    m_DeleteButton.interactable   = false;
                    displayDeleteButton           = isLocal;
                    break;

                case ProjectsManager.Status.Downloading:
                    m_DownloadButtonLabel.text    = "Downloading ...";
                    m_DownloadButton.interactable = false;
                    m_DeleteButton.interactable   = false;
                    displayDeleteButton           = isLocal;
                    break;

                case ProjectsManager.Status.QueuedForDelete:
                    m_DeleteButtonLabel.text      = "Removing (Queued)";
                    m_DownloadButton.interactable = false;
                    m_DeleteButton.interactable   = false;
                    displayDeleteButton           = true;
                    break;

                case ProjectsManager.Status.Deleting:
                    m_DeleteButtonLabel.text      = "Removing ...";
                    m_DownloadButton.interactable = false;
                    m_DeleteButton.interactable   = false;
                    displayDeleteButton           = true;
                    break;

                case ProjectsManager.Status.Downloaded:
                case ProjectsManager.Status.Deleted:
                case ProjectsManager.Status.Unknown:
                default:
                    if (hasUpdate)
                    {
                        m_DownloadButtonLabel.text = "Download Latest";
                    }
                    else
                    {
                        m_DownloadButtonLabel.text = isLocal ? "Redownload" : "Download";
                    }

                    m_DeleteButtonLabel.text      = "Remove From Device";
                    m_DownloadButton.interactable = m_Project.IsConnectedToServer;
                    m_DeleteButton.interactable   = isLocal;
                    displayDeleteButton           = isLocal;
                    break;
                }

                SetButtonVisible(m_DownloadButton, true);
                SetButtonVisible(m_DeleteButton, displayDeleteButton);
            }

            UpdatePosition();
        }