// ---------[ UPDATE VIEW ]--------- public void DisplayMod(ModProfile profile, ModStatistics statistics, IEnumerable <ModTagCategory> tagCategories, bool isModSubscribed, bool isModEnabled) { // TODO(@jackson): Remove if (profile == null) { return; } this.profile = profile; this.statistics = statistics; this.isModSubscribed = isModSubscribed; this.isModEnabled = isModEnabled; if (modView != null) { modView.DisplayMod(profile, statistics, tagCategories, isModSubscribed, isModEnabled); if (modView.mediaContainer != null) { ModMediaCollection media = profile.media; bool hasMedia = media != null; hasMedia &= ((media.youTubeURLs != null && media.youTubeURLs.Length > 0) || (media.galleryImageLocators != null && media.galleryImageLocators.Length > 0)); modView.mediaContainer.gameObject.SetActive(hasMedia); } } if (selectedMediaPreview != null) { selectedMediaPreview.DisplayLogo(profile.id, profile.logoLocator); } // - version history - if (versionHistoryContainer != null && versionHistoryItemPrefab != null) { foreach (Transform t in versionHistoryContainer) { GameObject.Destroy(t.gameObject); } RequestFilter modfileFilter = new RequestFilter(); modfileFilter.sortFieldName = ModIO.API.GetAllModfilesFilterFields.dateAdded; modfileFilter.isSortAscending = false; APIClient.GetAllModfiles(profile.id, modfileFilter, new APIPaginationParameters() { limit = 20 }, (r) => PopulateVersionHistory(profile.id, r.items), WebRequestError.LogAsWarning); } }
// ---------[ UPDATE VIEW ]--------- public void Refresh() { Debug.Assert(this.m_isInitialized); Debug.Assert(this.modView != null); ModProfile profile = null; ModStatistics stats = null; // set initial values this.SetLoadingDisplay(true); this.modView.DisplayLoading(); if (this.selectedMediaPreview != null) { this.selectedMediaPreview.DisplayLoading(); } // early out if NULL_ID if (this.m_modId == ModProfile.NULL_ID) { return; } // delegate for pushing changes to mod view Action pushToView = () => { bool isModSubscribed = ModManager.GetSubscribedModIds().Contains(this.m_modId); bool isModEnabled = ModManager.GetEnabledModIds().Contains(this.m_modId); ModRatingValue rating = ModBrowser.instance.GetModRating(this.m_modId); if (profile != null) { modView.DisplayMod(profile, stats, this.m_tagCategories, isModSubscribed, isModEnabled, rating); // media container if (modView.mediaContainer != null) { ModMediaCollection media = profile.media; bool hasMedia = media != null; hasMedia &= ((media.youTubeURLs != null && media.youTubeURLs.Length > 0) || (media.galleryImageLocators != null && media.galleryImageLocators.Length > 0)); modView.mediaContainer.gameObject.SetActive(hasMedia); } // media preview if (selectedMediaPreview != null) { selectedMediaPreview.DisplayLogo(profile.id, profile.logoLocator); } } }; // profile ModProfileRequestManager.instance.RequestModProfile(this.m_modId, (p) => { if (this == null) { return; } this.SetLoadingDisplay(false); profile = p; pushToView(); }, WebRequestError.LogAsWarning); // statistics ModStatisticsRequestManager.instance.RequestModStatistics(this.m_modId, (s) => { if (this == null) { return; } stats = s; pushToView(); }, WebRequestError.LogAsWarning); // version history if (versionHistoryContainer != null && versionHistoryItemPrefab != null) { RequestFilter modfileFilter = new RequestFilter(); modfileFilter.sortFieldName = ModIO.API.GetAllModfilesFilterFields.dateAdded; modfileFilter.isSortAscending = false; APIClient.GetAllModfiles(this.m_modId, modfileFilter, new APIPaginationParameters() { limit = 10 }, (r) => { this.m_versionHistory = r.items; PopulateVersionHistory(); }, WebRequestError.LogAsWarning); } }