void ConsolidateOnSkuDetailsReceived(AndroidJavaObject javaBillingResult, AndroidJavaObject skuDetails, Action <List <AndroidJavaObject> > onSkuDetailsResponse) { m_NumberReceivedCallbacks++; GoogleBillingResult billingResult = new GoogleBillingResult(javaBillingResult); if (billingResult.responseCode == BillingClientResponseEnum.OK()) { AddToQueriedSkuDetails(skuDetails); } if (m_NumberReceivedCallbacks >= k_RequiredNumberOfCallbacks) { m_GoogleCachedQuerySkuDetailsService.AddCachedQueriedSkus(m_QueriedSkuDetails); onSkuDetailsResponse(m_QueriedSkuDetails); Clear(); } }
void QueryAsyncSkuWithRetries(IReadOnlyCollection <ProductDefinition> products, Action <List <AndroidJavaObject> > onSkuDetailsResponse, Action retryQuery) { var consolidator = new SkuDetailsResponseConsolidator(skuDetailsQueryResponse => { m_GoogleCachedQuerySkuDetailsService.AddCachedQueriedSkus(skuDetailsQueryResponse.SkuDetails()); if (ShouldRetryQuery(products, skuDetailsQueryResponse)) { retryQuery(); } else { onSkuDetailsResponse(GetCachedSkuDetails(products).ToList()); } }); QueryInAppsAsync(products, consolidator); QuerySubsAsync(products, consolidator); }