Esempio n. 1
0
 public static void ManagePackageManagerEntitlementError(UpmClient upmClient)
 {
     upmClient.onListOperation += OnListOperation;
     upmClient.List(true);
 }
Esempio n. 2
0
        public virtual void Refresh(RefreshOptions options)
        {
            if ((options & RefreshOptions.UpmAny) != 0)
            {
                var entitlements = m_PackageDatabase.allPackages.Where(package => package.hasEntitlementsError);
                if (entitlements.Any())
                {
                    foreach (var package in entitlements)
                    {
                        package.ClearErrors(error => error.errorCode == UIErrorCode.Forbidden);
                    }
                    TriggerOnSelectionChanged();
                }
            }

            if ((options & RefreshOptions.UpmSearch) != 0)
            {
                m_UpmClient.SearchAll();
                // Since the SearchAll online call now might return error and an empty list, we want to trigger a `SearchOffline` call if
                // we detect that SearchOffline has not been called before. That way we will have some offline result to show to the user instead of nothing
                if (!m_RefreshTimestamps.TryGetValue(RefreshOptions.UpmSearchOffline, out var value) || value == 0)
                {
                    options |= RefreshOptions.UpmSearchOffline;
                }
            }
            if ((options & RefreshOptions.UpmSearchOffline) != 0)
            {
                m_UpmClient.SearchAll(true);
            }
            if ((options & RefreshOptions.UpmList) != 0)
            {
                m_UpmClient.List();
                // Do the same logic for the List operations as the Search operations
                if (!m_RefreshTimestamps.TryGetValue(RefreshOptions.UpmListOffline, out var value) || value == 0)
                {
                    options |= RefreshOptions.UpmListOffline;
                }
            }
            if ((options & RefreshOptions.UpmListOffline) != 0)
            {
                m_UpmClient.List(true);
            }
            if ((options & RefreshOptions.Purchased) != 0)
            {
                var queryArgs = new PurchasesQueryArgs
                {
                    startIndex = 0,
                    limit      = Math.Max(GetCurrentPage().numCurrentItems, m_PackageManagerPrefs.numItemsPerPage ?? k_DefaultPageSize),
                    searchText = m_PackageFiltering.currentSearchText
                };

                IPage page;
                if (m_Pages.TryGetValue(PackageFilterTab.AssetStore, out page))
                {
                    queryArgs.status         = page.filters.status;
                    queryArgs.categories     = page.filters.categories;
                    queryArgs.labels         = page.filters.labels;
                    queryArgs.orderBy        = page.filters.orderBy;
                    queryArgs.isReverseOrder = page.filters.isReverseOrder;
                }

                m_AssetStoreClient.ListPurchases(queryArgs);
            }
            if ((options & RefreshOptions.PurchasedOffline) != 0)
            {
                m_AssetStoreClient.RefreshLocal();
            }
        }