Migrate billing lib updates
This commit is contained in:
@@ -35,7 +35,9 @@ class EBegFragment : AppCompatDialogFragment() {
|
||||
if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
|
||||
Timber.e("onBillingSetupFinished: ${billingResult.responseCode}")
|
||||
} else GlobalScope.launch(Dispatchers.Main.immediate) {
|
||||
val result = billingClient.queryPurchasesAsync(BillingClient.SkuType.INAPP)
|
||||
val result = billingClient.queryPurchasesAsync(QueryPurchasesParams.newBuilder().apply {
|
||||
setProductType(BillingClient.ProductType.INAPP)
|
||||
}.build())
|
||||
onPurchasesUpdated(result.billingResult, result.purchasesList)
|
||||
}
|
||||
}
|
||||
@@ -64,12 +66,12 @@ class EBegFragment : AppCompatDialogFragment() {
|
||||
}
|
||||
|
||||
private lateinit var binding: FragmentEbegBinding
|
||||
private var skus: List<SkuDetails>? = null
|
||||
private var productDetails: List<ProductDetails>? = null
|
||||
set(value) {
|
||||
field = value
|
||||
binding.donationsGoogleAndroidMarketSpinner.apply {
|
||||
val adapter = ArrayAdapter(context ?: return, android.R.layout.simple_spinner_item,
|
||||
value?.map { it.price } ?: listOf("…"))
|
||||
value?.map { it.oneTimePurchaseOfferDetails?.formattedPrice } ?: listOf("…"))
|
||||
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
||||
setAdapter(adapter)
|
||||
}
|
||||
@@ -83,21 +85,29 @@ class EBegFragment : AppCompatDialogFragment() {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
dialog!!.setTitle(R.string.settings_misc_donate)
|
||||
viewLifecycleOwner.lifecycleScope.launchWhenCreated {
|
||||
billingClient.querySkuDetails(SkuDetailsParams.newBuilder().apply {
|
||||
setSkusList(listOf("donate001", "donate002", "donate005", "donate010", "donate020", "donate050",
|
||||
"donate100", "donate200", "donatemax"))
|
||||
setType(BillingClient.SkuType.INAPP)
|
||||
billingClient.queryProductDetails(QueryProductDetailsParams.newBuilder().apply {
|
||||
setProductList(listOf(
|
||||
"donate001", "donate002", "donate005", "donate010", "donate020", "donate050",
|
||||
"donate100", "donate200", "donatemax",
|
||||
).map {
|
||||
QueryProductDetailsParams.Product.newBuilder().apply {
|
||||
setProductId(it)
|
||||
setProductType(BillingClient.ProductType.INAPP)
|
||||
}.build()
|
||||
})
|
||||
}.build()).apply {
|
||||
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) skus = skuDetailsList else {
|
||||
Timber.e("onSkuDetailsResponse: ${billingResult.responseCode}")
|
||||
if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
|
||||
Timber.e("queryProductDetails: ${billingResult.responseCode}")
|
||||
SmartSnackbar.make(R.string.donations__google_android_market_not_supported).show()
|
||||
}
|
||||
} else productDetails = productDetailsList
|
||||
}
|
||||
}
|
||||
binding.donationsGoogleAndroidMarketDonateButton.setOnClickListener {
|
||||
val sku = skus?.getOrNull(binding.donationsGoogleAndroidMarketSpinner.selectedItemPosition)
|
||||
if (sku != null) billingClient.launchBillingFlow(requireActivity(), BillingFlowParams.newBuilder().apply {
|
||||
setSkuDetails(sku)
|
||||
val product = productDetails?.getOrNull(binding.donationsGoogleAndroidMarketSpinner.selectedItemPosition)
|
||||
if (product != null) billingClient.launchBillingFlow(requireActivity(), BillingFlowParams.newBuilder().apply {
|
||||
setProductDetailsParamsList(listOf(BillingFlowParams.ProductDetailsParams.newBuilder().apply {
|
||||
setProductDetails(product)
|
||||
}.build()))
|
||||
}.build()) else SmartSnackbar.make(R.string.donations__google_android_market_not_supported).show()
|
||||
}
|
||||
@Suppress("ConstantConditionIf")
|
||||
|
||||
Reference in New Issue
Block a user