private void OnUserLoginStateChange(bool isUserInfoReady, bool isUserLoggedIn) { if (!isUserLoggedIn) { return; } var page = m_PageManager.GetCurrentPage(); if (page.filters.updateAvailableOnly) { m_AssetStoreClient.RefreshLocal(); CheckUpdateForUncheckedLocalInfos(); } }
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(); } }