in TrivialDriveJava/app/src/main/java/com/sample/android/trivialdrivesample/billing/BillingDataSource.java [522:549]
private void setSkuStateFromPurchase(@NonNull Purchase purchase) {
for (String purchaseSku:purchase.getSkus()) {
MutableLiveData<SkuState> skuStateLiveData = skuStateMap.get(purchaseSku);
if (null == skuStateLiveData) {
Log.e(TAG, "Unknown SKU " + purchaseSku + ". Check to make " +
"sure SKU matches SKUS in the Play developer console.");
} else {
switch (purchase.getPurchaseState()) {
case Purchase.PurchaseState.PENDING:
skuStateLiveData.postValue(SkuState.SKU_STATE_PENDING);
break;
case Purchase.PurchaseState.UNSPECIFIED_STATE:
skuStateLiveData.postValue(SkuState.SKU_STATE_UNPURCHASED);
break;
case Purchase.PurchaseState.PURCHASED:
if (purchase.isAcknowledged()) {
skuStateLiveData.postValue(
SkuState.SKU_STATE_PURCHASED_AND_ACKNOWLEDGED);
} else {
skuStateLiveData.postValue(SkuState.SKU_STATE_PURCHASED);
}
break;
default:
Log.e(TAG, "Purchase in unknown state: " + purchase.getPurchaseState());
}
}
}
}