public virtual void FetchDetail(IPackage package, Action <IPackage> doneCallbackAction = null) { if (m_UnityConnect.isUserLoggedIn && long.TryParse(package?.uniqueId, out var productId)) { m_AssetStoreClient.FetchDetail(productId, doneCallbackAction); } }
private void FetchDetailsFromQueue() { if (!m_UnityConnect.isUserLoggedIn) { return; } var numItemsAdded = 0; while (m_FetchDetailsQueue.Any() && numItemsAdded < k_FetchDetailsCountPerUpdate && m_CurrentFetchDetails.Count < k_MaxFetchDetailsCount) { var packageId = m_FetchDetailsQueue.Dequeue(); if (!m_DetailsToFetch.Remove(packageId)) { continue; } if (long.TryParse(packageId, out var productId)) { m_CurrentFetchDetails.Add(packageId); numItemsAdded++; m_AssetStoreClient.FetchDetail(productId, package => m_CurrentFetchDetails.Remove(packageId)); } } }