public void QuerySkuDetailsAsync(List <string> skus, string type, Action <IGoogleBillingResult, List <AndroidJavaObject> > onSkuDetailsResponseAction) { var skuDetailsParamsBuilder = GetSkuDetailsParamClass().CallStatic <AndroidJavaObject>("newBuilder"); skuDetailsParamsBuilder = skuDetailsParamsBuilder.Call <AndroidJavaObject>("setSkusList", skus.ToJava()); skuDetailsParamsBuilder = skuDetailsParamsBuilder.Call <AndroidJavaObject>("setType", type); var skuDetailsParams = skuDetailsParamsBuilder.Call <AndroidJavaObject>("build"); var listener = new SkuDetailsResponseListener(onSkuDetailsResponseAction, m_Util); m_BillingClient.Call("querySkuDetailsAsync", skuDetailsParams, listener); }
private void QuerySkuDetailsForSkuType(ReadOnlyCollection <ProductDefinition> products, SkuType skuType) { var skuDetailsParamBuilder = new AndroidJavaObject(Constants.SkuDetailsParamBuilder); string[] skuIds = { }; if (skuType == SkuType.InApp) { skuIds = products.Where(p => p.type == ProductType.Consumable || p.type == ProductType.NonConsumable) .Select(p => p.storeSpecificId).ToArray(); } else if (skuType == SkuType.Subs) { skuIds = products.Where(p => p.type == ProductType.Subscription).Select(p => p.storeSpecificId) .ToArray(); } else { throw new NotImplementedException(String.Format("Unsupported Google Play Store skuType {0}.", skuType)); } // Set the SkuDetails request status to success state if the list is empty. if (!skuIds.Any()) { _billingClientQuerySkuDetailsCallStatus[skuType] = AsyncRequestStatus.Succeed; NotifyUnityRetrieveProductsResults(); return; } skuDetailsParamBuilder.Call <AndroidJavaObject>(Constants.SkuDetailsParamBuilderSetSkuListMethod, JniUtils.CreateJavaArrayList(skuIds)); skuDetailsParamBuilder.Call <AndroidJavaObject>(Constants.SkuDetailsParamBuilderSetTypeMethod, skuType.ToString()); var skuDetailsParam = skuDetailsParamBuilder.Call <AndroidJavaObject>(Constants.BuildMethod); var skuDetailsResponseListener = new SkuDetailsResponseListener(skuType); skuDetailsResponseListener.OnSkuDetailsResponse += ParseSkuDetailsResults; _billingClient.Call(Constants.QuerySkuDetailsMethod, skuDetailsParam, skuDetailsResponseListener); }
public void QuerySkuDetailsAsync(AndroidJavaObject skuDetailsParamsBuilder, SkuDetailsResponseListener listener) { m_BillingClient.Call("querySkuDetailsAsync", skuDetailsParamsBuilder.Call <AndroidJavaObject>("build"), listener); }