@NonNull @Override public Billing billing(@NonNull String packageName, @NonNull IInAppBillingService service) { return new SimpleBilling(packageName, service); }
@Override public boolean ownsSku(@NonNull String sku) { try { final Bundle bundle = service.getPurchases(3, packageName, BILLING_TYPE, null); if (responseOk(bundle)) { final ArrayList<String> list = bundle.getStringArrayList(RESPONSE_ITEM_LIST); return null != list && list.contains(sku); } } catch (RemoteException ignore) { } return false; }
static Billing billing(IInAppBillingService service) { return new SimpleBilling(PACKAGE_NAME, service); }
@Override public boolean purchase(@NonNull Activity activity, @NonNull String sku, int requestCode, @Nullable String payload) { try { final Bundle bundle = service.getBuyIntent(3, packageName, sku, BILLING_TYPE, payload); if (responseOk(bundle)) { final PendingIntent pendingIntent = bundle.getParcelable(RESPONSE_BUY_INTENT); if (pendingIntent != null) { final IntentSender sender = pendingIntent.getIntentSender(); activity.startIntentSenderForResult(sender, requestCode, null, 0, 0, 0); return true; } } } catch (RemoteException | IntentSender.SendIntentException ignore) { } return false; }
@NonNull @Override public Billing billing(@NonNull String packageName, @NonNull IInAppBillingService service) { return new SimpleBilling(packageName, service); }
@Override public SkuDetails skuDetails(@NonNull String sku) { try { final Bundle skus = new Bundle(1); skus.putStringArrayList(REQUEST_ITEM_ID_LIST, arrayList(sku)); final Bundle bundle = service.getSkuDetails(3, packageName, BILLING_TYPE, skus); if (responseOk(bundle)) { final ArrayList<String> list = bundle.getStringArrayList(RESPONSE_DETAILS_LIST); if (list != null && !list.isEmpty()) { final String json = list.get(0); return new SkuDetails(json); } } } catch (RemoteException | JSONException ignore) { } return null; }