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