Created
February 18, 2021 12:59
-
-
Save UtkuGlsvn/8415edf157da92a1bb97173c89b62706 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class MyBillingImpl(private val activity: Activity) : | |
PurchasesUpdatedListener, ConsumeResponseListener, BillingProcessor.IBillingHandler { | |
var billingClient: BillingClient = BillingClient.newBuilder(activity) | |
.enablePendingPurchases() | |
.setListener(this) | |
.build() | |
private var list: MutableList<SkuDetails>? = null | |
init { | |
//billingClient = BillingClient.newBuilder(activity).setListener(this).build() | |
billingClient.startConnection(object : BillingClientStateListener { | |
override fun onBillingSetupFinished(p0: BillingResult) { | |
if (p0.responseCode == BillingClient.BillingResponseCode.OK) { | |
Log.v("baglanti kuruldu", "kuruldu") | |
Toast.makeText(activity, "baglanti kuruldu", Toast.LENGTH_SHORT).show() | |
val purchases: MutableList<Purchase> = | |
billingClient.queryPurchases(BillingClient.SkuType.INAPP).purchasesList!! | |
Toast.makeText(activity, "${purchases.toString()}", Toast.LENGTH_SHORT).show() | |
handeItemAlreadyPuchase(purchases) | |
Log.v("purchase", purchases.toString()) | |
} | |
} | |
override fun onBillingServiceDisconnected() { | |
Log.v("disconnect billing", "kuruldu") | |
} | |
}) | |
} | |
//premium icin | |
private fun handeItemAlreadyPuchase(purchases: MutableList<Purchase>) { | |
val pyrchasedItem: StringBuilder = StringBuilder("premium") | |
purchases.forEach { | |
Toast.makeText(activity, "${it.sku}", Toast.LENGTH_SHORT).show() | |
if (it.sku == "utku") { | |
val consumeParams: ConsumeParams = ConsumeParams.newBuilder() | |
.setPurchaseToken(it.purchaseToken) | |
.build() | |
billingClient.consumeAsync(consumeParams, this) | |
} | |
pyrchasedItem.append("\n ${it.sku}") | |
} | |
} | |
override fun onPurchasesUpdated(p0: BillingResult, purchases: MutableList<Purchase>?) { | |
if (p0.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) { | |
purchases | |
} | |
} | |
fun skuParams() { | |
val params = | |
SkuDetailsParams.newBuilder().setSkusList(listOf("test", "test3","birthchart","test2")) | |
.setType(BillingClient.SkuType.INAPP).build() | |
billingClient.querySkuDetailsAsync(params, object : SkuDetailsResponseListener { | |
override fun onSkuDetailsResponse(p0: BillingResult, p1: MutableList<SkuDetails>?) { | |
if (p0.responseCode == BillingClient.BillingResponseCode.OK) { | |
Toast.makeText(activity, "baglanti kuruldu SkuParams", Toast.LENGTH_SHORT) | |
.show() | |
loadProduct(p1) | |
} else { | |
Toast.makeText(activity, "baglanti kurulamadı SkuParams", Toast.LENGTH_SHORT) | |
.show() | |
} | |
} | |
}) | |
} | |
fun loadProduct(p1: MutableList<SkuDetails>?) { | |
list = p1 | |
} | |
fun returnList(): MutableList<SkuDetails>? { | |
return list | |
} | |
fun consumePurchase(purchaseToken: String) { | |
val consumeParams = ConsumeParams | |
.newBuilder() | |
.setPurchaseToken(purchaseToken) | |
.build() | |
} | |
override fun onConsumeResponse(p0: BillingResult, p1: String) { | |
// Handle consumption | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment