danimahardhika / cafebar

An upgraded Snackbar for Android that provides more options and easy to use
Apache License 2.0
145 stars 23 forks source link
android android-library material-components material-design snackbar ui-components

CafeBar

Build Status Codacy Badge License

An upgraded Snackbar for Android that provides more options and easy to use. Download sample apk from here.

Gradle Dependency

The minimum API level supported by this library is API 14

Add JitPack repository to root build.gradle

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

Add the dependency

dependencies {
    implementation 'com.github.danimahardhika:cafebar:1.3.1'
}

Usage

Old release 1.0.0 - 1.2.0 take a look here

Show simple CafeBar

CafeBar.make(context, R.string.text, CafeBar.Duration.SHORT).show();

Show simple CafeBar with action

CafeBar.make(context, R.string.text, CafeBar.Duration.SHORT)
    .setAction(actionText, actionColor, callback)
    .show();

Using builder

CafeBar.builder(context)
    .theme(CafeBarTheme.LIGHT)
    .duration(CafeBar.Duration.MEDIUM)
    .content(R.string.text)
    .neutralText("Action")
    //You can parse string color
    .neutralColor(Color.parseColor("#EEFF41"))
    //Or use color resource
    .neutralColor(R.color.neutralText)
    .show();

Retrieve CafeBar view

CafeBar.Builder builder = new CafeBar.Builder(context);
...
CafeBar cafeBar = builder.build();

View v = cafeBar.getView();
//Do something
cafeBar.show();

Floating CafeBar

 CafeBar.builder(context)
    .content("some text")
    .floating(true)
    .show();

CafeBar above Translucent NavigationBar

CafeBar.builder(context)
    .content(R.string.text)
    //automatically determine if device has soft navigation bar and translucent navigation bar
    .fitSystemWindow()
    .show();

Custom Theme

CafeBar.builder(context)
    //Text color (content and buttons) automatically set
    .theme(CafeBarTheme.Custom(Color.parseColor("#F44336")));
    .content(R.string.text)
    .show();

Custom Font

CafeBar.builder(context)
    .content(R.string.text)
    //You must place your font inside assets/fonts/ folder
    .contentTypeface("RobotoMono-Regular.ttf")
    //Or
    .contentTypeface(Typeface.createFromAsset(context.getAssets(), "fonts/RobotoMono-Regular.ttf");
    .show();

Customization

Builder

CafeBar

License

Copyright (c) 2017 Dani Mahardhika

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.