Commit f6529464 authored by wanglei's avatar wanglei

....

parent 1fbbf318
package com.base.filerecoveryrecyclebin.billing
import android.content.Context
import androidx.lifecycle.DefaultLifecycleObserver
import com.android.billingclient.api.BillingClient
import com.android.billingclient.api.Purchase
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
class BillingClientLifecycle : DefaultLifecycleObserver {
class BillingClientLifecycle(
private val applicationContext: Context,
) : DefaultLifecycleObserver {
private val _subscriptionPurchases = MutableStateFlow<List<Purchase>>(emptyList())
val subscriptionPurchases = _subscriptionPurchases.asStateFlow()
@Volatile
private var INSTANCE: BillingClientLifecycle? = null
fun getInstance(applicationContext: Context): BillingClientLifecycle =
INSTANCE ?: synchronized(this) {
INSTANCE ?: BillingClientLifecycle(applicationContext).also { INSTANCE = it }
}
}
\ No newline at end of file
......@@ -3,16 +3,25 @@ package com.base.filerecoveryrecyclebin.billing
import android.app.Application
import android.content.Context
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import com.android.billingclient.api.BillingClient
import com.android.billingclient.api.ProductDetails
class BillingViewModel(val application: Application) : AndroidViewModel(application) {
private lateinit var billingClient: BillingClient
class BillingViewModel(application: Application) : AndroidViewModel(application) {
// val billingClientLifecycle: BillingClientLifecycle
// get() = BillingClientLifecycle.getInstance(this)
//
// @Volatile
// private var INSTANCE: BillingClientLifecycle? = null
// fun getInstance(applicationContext: Context): BillingClientLifecycle =
// INSTANCE ?: synchronized(this) {
// INSTANCE ?: BillingClientLifecycle(applicationContext).also { INSTANCE = it }
// }
@Volatile
private var INSTANCE: BillingClientLifecycle? = null
fun getInstance(applicationContext: Context): BillingClientLifecycle =
INSTANCE ?: synchronized(this) {
INSTANCE ?: BillingClientLifecycle(application.applicationContext).also { INSTANCE = it }
}
val basicSubProductWithProductDetails = MutableLiveData<ProductDetails?>()
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment