Commit f6529464 authored by wanglei's avatar wanglei

....

parent 1fbbf318
package com.base.filerecoveryrecyclebin.billing package com.base.filerecoveryrecyclebin.billing
import android.content.Context
import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.DefaultLifecycleObserver
import com.android.billingclient.api.BillingClient
import com.android.billingclient.api.Purchase import com.android.billingclient.api.Purchase
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
class BillingClientLifecycle : DefaultLifecycleObserver { class BillingClientLifecycle(
private val applicationContext: Context,
) : DefaultLifecycleObserver {
private val _subscriptionPurchases = MutableStateFlow<List<Purchase>>(emptyList()) private val _subscriptionPurchases = MutableStateFlow<List<Purchase>>(emptyList())
val subscriptionPurchases = _subscriptionPurchases.asStateFlow() 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 ...@@ -3,16 +3,25 @@ package com.base.filerecoveryrecyclebin.billing
import android.app.Application import android.app.Application
import android.content.Context import android.content.Context
import androidx.lifecycle.AndroidViewModel 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 // val billingClientLifecycle: BillingClientLifecycle
// get() = BillingClientLifecycle.getInstance(this) // get() = BillingClientLifecycle.getInstance(this)
//
// @Volatile @Volatile
// private var INSTANCE: BillingClientLifecycle? = null private var INSTANCE: BillingClientLifecycle? = null
// fun getInstance(applicationContext: Context): BillingClientLifecycle = fun getInstance(applicationContext: Context): BillingClientLifecycle =
// INSTANCE ?: synchronized(this) { INSTANCE ?: synchronized(this) {
// INSTANCE ?: BillingClientLifecycle(applicationContext).also { INSTANCE = it } 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