TonnyL / Light

🍭 The usual Snackbar, but elegant
MIT License
548 stars 33 forks source link
android kotlin kotlin-android kotlin-library material-components material-design snackbar ui-components

Light

Build Status Download

The usual Snackbar, but elegant. Inspired by Toasty.

Screenshots

success Info warning
Success Info Warning
Error Normal Custom
Error Normal Custom

Download

Gradle

Add the code below to your root build.gradle file (NOT your module build.gradle file, check here for an example).

allprojects {
    repositories {
        jcenter()
    }
}

Add the code below to your module's build.gradle file:

dependencies {
    implementation 'io.github.tonnyl:light:latest_version'
}

Maven

<dependency>
  <groupId>io.github.tonnyl</groupId>
  <artifactId>light</artifactId>
  <version>latest_version</version>
  <type>pom</type>
</dependency>

Usage

Each method always returns a Snackbar object, so you can customize the Snackbar much more. DO NOT FORGET TO CALL THE show() METHOD!

// Kotlin
import io.github.tonnyl.light.success

success(fab, "Success", Snackbar.LENGTH_SHORT)
    .setAction("Action", {
        Toast.makeText(this@MainActivity, "Hello, Light!", Toast.LENGTH_SHORT).show()
    })
    .show()
// Java
Light.success(fab, "Success", Snackbar.LENGTH_SHORT)
    .setAction("Action", v ->
        Toast.makeText(SettingsActivity.this, "Hello, Light!", Toast.LENGTH_SHORT).show())
    .show());
// Kotlin
import io.github.tonnyl.light.info

info(fab, "Info", Snackbar.LENGTH_SHORT).show()
// Java
Light.info(fab, "Info", Snackbar.LENGTH_SHORT).show());
// Kotlin
import io.github.tonnyl.light.warning

warning(fab, "Warning", Snackbar.LENGTH_SHORT).show()
// Java
Light.warning(fab, "Warning", Snackbar.LENGTH_SHORT).show());
// Kotlin
import io.github.tonnyl.light.error

error(fab, "Error", Snackbar.LENGTH_SHORT).show()
// Java
Light.error(fab, "Error", Snackbar.LENGTH_SHORT).show());
// Kotlin
import io.github.tonnyl.light.normal

normal(fab, "Normal", Snackbar.LENGTH_SHORT).show()
// Java
Light.normal(fab, "Normal", Snackbar.LENGTH_SHORT).show();
// Kotlin
import io.github.tonnyl.light.make

make(
    fab, // // The view to find a parent from.
    "Awesome Snackbar", // The message to show.
    Snackbar.LENGTH_INDEFINITE, // How long to display the message.
    R.drawable.ic_album_white_24dp, // The left icon of message to show.
    R.color.color_cyan, // The background color of Snackbar.
    android.R.color.white, // The color of text to show.
    R.drawable.ic_done_all_white_24dp,
    R.color.colorAccent) // The left icon of action text.
    .setAction("Done all", {
        // Do whatever you want to do.
        Toast.makeText(this@MainActivity, "Hello, Light!", Toast.LENGTH_SHORT).show()
    })
    .show()
// Java
Light.make(
    fab,
    "Awesome Snackbar",
    Snackbar.LENGTH_SHORT,
    R.drawable.ic_album_white_24dp,
    R.color.color_cyan,
    android.R.color.white,
    R.drawable.ic_done_all_white_24dp,
    R.color.colorAccent)
    .setAction("Done all", v ->
        Toast.makeText(SettingsActivity.this, "Hello, Light!", Toast.LENGTH_SHORT).show())
    .show());

Extra

You can pass formatted text to Light!

Pull Request

Have some new ideas or find a bug? Do not hesitate to open an issue and make a pull request.

License

Light is under an MIT license. See the LICENSE file for more info.