/** * Requests the purchase of the specified subscription item with optional automatic confirmation. * * @param context * @param itemId id of the item to be purchased. * @param confirm if true, the transaction will be confirmed automatically. If false, the * transaction will have to be confirmed with a call to {@link #confirmNotifications(Context, * String)}. * @param developerPayload a developer-specified string that contains supplemental information * about the order. * @see IBillingObserver#onPurchaseIntent(String, PendingIntent) */ public static void requestSubscription( Context context, String itemId, boolean confirm, String developerPayload) { if (confirm) { automaticConfirmations.add(itemId); } BillingService.requestSubscription(context, itemId, developerPayload); }
/** * Returns the subscription billing support status, and checks it asynchronously if it is * currently unknown. Observers will receive a {@link * IBillingObserver#onSubscriptionChecked(boolean)} notification in either case. * * <p>No support for subscriptions does not imply that in-app products are also unsupported. To * check if in-app products are supported, use {@link * BillingController#checkBillingSupported(Context)}. * * @param context * @return the current subscription billing status (unknown, supported or unsupported). If it is * supported, in-app products are also supported. * @see IBillingObserver#onSubscriptionChecked(boolean) * @see BillingController#checkBillingSupported(Context) */ public static BillingStatus checkSubscriptionSupported(Context context) { if (subscriptionStatus == BillingStatus.UNKNOWN) { BillingService.checkSubscriptionSupported(context); } else { boolean supported = subscriptionStatus == BillingStatus.SUPPORTED; onSubscriptionChecked(supported); } return subscriptionStatus; }
/** * Returns the in-app product billing support status, and checks it asynchronously if it is * currently unknown. Observers will receive a {@link IBillingObserver#onBillingChecked(boolean)} * notification in either case. * * <p>In-app product support does not imply subscription support. To check if subscriptions are * supported, use {@link BillingController#checkSubscriptionSupported(Context)}. * * @param context * @return the current in-app product billing support status (unknown, supported or unsupported). * If it is unsupported, subscriptions are also unsupported. * @see IBillingObserver#onBillingChecked(boolean) * @see BillingController#checkSubscriptionSupported(Context) */ public static BillingStatus checkBillingSupported(Context context) { if (billingStatus == BillingStatus.UNKNOWN) { BillingService.checkBillingSupported(context); } else { boolean supported = billingStatus == BillingStatus.SUPPORTED; onBillingChecked(supported); } return billingStatus; }
/** * Requests to restore all transactions. * * @param context */ public static void restoreTransactions(Context context) { final long nonce = Security.generateNonce(); BillingService.restoreTransations(context, nonce); }
/** * Requests purchase information for the specified notification. Immediately followed by a call to * {@link #onPurchaseInformationResponse(long, boolean)} and later to {@link * #onPurchaseStateChanged(Context, String, String)}, if the request is successful. * * @param context * @param notifyId id of the notification whose purchase information is requested. */ private static void getPurchaseInformation(Context context, String notifyId) { final long nonce = Security.generateNonce(); BillingService.getPurchaseInformation(context, new String[] {notifyId}, nonce); }
/** * Requests to confirm all specified notifications. * * @param context * @param notifyIds array with the ids of all the notifications to confirm. */ private static void confirmNotifications(Context context, String[] notifyIds) { BillingService.confirmNotifications(context, notifyIds); }