Skip to content
/ billy Public

Makes Google play in app purchase library (BillingClient) into a flowable that can easily be used in compose world

License

Notifications You must be signed in to change notification settings

warting/billy

Repository files navigation

Maven Central

Billy the android

Our goal is to make a modern api of BillingClient so that it is easier to use in compose world. This library is still early beta and APIs for usages will be changes!

How to include in your project

The library is available via MavenCentral:

allprojects {
    repositories {
        // ...
        mavenCentral()
    }
}
Snapshots of the development version are available in Sonatype's snapshots repository.

Sonatype Nexus (Snapshots)

allprojects {
    repositories {
        // ...
        maven {
            url 'https://oss.sonatype.org/content/repositories/snapshots/'
        }
    }
}

Add it to your module dependencies:

dependencies {
    implementation("se.warting.billy:flow:<latest_version>")
}

How to use

All you need to do is to call collect the state of an Product and then call buy() when it is ready:

val earlyBirdProduct = Product.Subscription("early_bird")
val earlyBirdProductStatus by earlyBirdProduct.statusFlow.collectAsState(
    initial = ProductStatus.Loading(earlyBirdProduct)
)

when (val earlyBirdProduct = earlyBirdProductStatus) {
    is ProductStatus.Available -> {
        Text("Available to buy!")
        Button(onClick = {
            // Launch buy flow
            earlyBirdProduct.buy(offer)
        }) {
            Text(text = "buy")
        }
    }
    is ProductStatus.Loading -> Text("Loading....")
    is ProductStatus.Unavailable -> Text("Unavailable")
    is ProductStatus.Owned -> Text("Owned")
}

For a full implementation see: Full sample

Test your apps products

If you want to load your own products in the sample app you can do so by adding your apps package name to local.properties file like this:

APPLICATION_ID=your.app.id

Notes

There is no need to initiate the BillingClient we are doing it for you! see: BillingInitializer

About

Makes Google play in app purchase library (BillingClient) into a flowable that can easily be used in compose world

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published