blob: 20ab8ad92e65c5d19b7b2d20eeb373ce6f8e0b0a [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package io.flutter.plugins.inapppurchase;
import static io.flutter.plugins.inapppurchase.Translator.fromBillingResult;
import static io.flutter.plugins.inapppurchase.Translator.fromPurchasesList;
import androidx.annotation.Nullable;
import com.android.billingclient.api.BillingResult;
import com.android.billingclient.api.Purchase;
import com.android.billingclient.api.PurchasesUpdatedListener;
import io.flutter.plugin.common.MethodChannel;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class PluginPurchaseListener implements PurchasesUpdatedListener {
private final MethodChannel channel;
PluginPurchaseListener(MethodChannel channel) {
this.channel = channel;
}
@Override
public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> purchases) {
final Map<String, Object> callbackArgs = new HashMap<>();
callbackArgs.put("billingResult", fromBillingResult(billingResult));
callbackArgs.put("responseCode", billingResult.getResponseCode());
callbackArgs.put("purchasesList", fromPurchasesList(purchases));
channel.invokeMethod(InAppPurchasePlugin.MethodNames.ON_PURCHASES_UPDATED, callbackArgs);
}
}