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