in TrivialDriveJava/app/src/main/java/com/sample/android/trivialdrivesample/billing/BillingDataSource.java [358:406]
public void onSkuDetailsResponse(@NonNull BillingResult billingResult,
List<SkuDetails> skuDetailsList) {
int responseCode = billingResult.getResponseCode();
String debugMessage = billingResult.getDebugMessage();
switch (responseCode) {
case BillingClient.BillingResponseCode.OK:
Log.i(TAG, "onSkuDetailsResponse: " + responseCode + " " + debugMessage);
if (skuDetailsList == null || skuDetailsList.isEmpty()) {
Log.e(TAG, "onSkuDetailsResponse: " +
"Found null or empty SkuDetails. " +
"Check to see if the SKUs you requested are correctly published " +
"in the Google Play Console.");
} else {
for (SkuDetails skuDetails : skuDetailsList) {
String sku = skuDetails.getSku();
MutableLiveData<SkuDetails> detailsMutableLiveData =
skuDetailsLiveDataMap.get(sku);
if (null != detailsMutableLiveData) {
detailsMutableLiveData.postValue(skuDetails);
} else {
Log.e(TAG, "Unknown sku: " + sku);
}
}
}
break;
case BillingClient.BillingResponseCode.SERVICE_DISCONNECTED:
case BillingClient.BillingResponseCode.SERVICE_UNAVAILABLE:
case BillingClient.BillingResponseCode.BILLING_UNAVAILABLE:
case BillingClient.BillingResponseCode.ITEM_UNAVAILABLE:
case BillingClient.BillingResponseCode.DEVELOPER_ERROR:
case BillingClient.BillingResponseCode.ERROR:
Log.e(TAG, "onSkuDetailsResponse: " + responseCode + " " + debugMessage);
break;
case BillingClient.BillingResponseCode.USER_CANCELED:
Log.i(TAG, "onSkuDetailsResponse: " + responseCode + " " + debugMessage);
break;
// These response codes are not expected.
case BillingClient.BillingResponseCode.FEATURE_NOT_SUPPORTED:
case BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED:
case BillingClient.BillingResponseCode.ITEM_NOT_OWNED:
default:
Log.wtf(TAG, "onSkuDetailsResponse: " + responseCode + " " + debugMessage);
}
if (responseCode == BillingClient.BillingResponseCode.OK) {
skuDetailsResponseTime = SystemClock.elapsedRealtime();
} else {
skuDetailsResponseTime = -SKU_DETAILS_REQUERY_TIME;
}
}