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();
            }
        }
示例#2
0
        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);
        }