/cafebar

An upgraded Snackbar for Android that provides more options and easy to use

Primary LanguageJavaApache License 2.0Apache-2.0

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 13

Add JitPack repository to root build.gradle

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

Add the dependency

dependencies {
    //...
    compile 'com.github.danimahardhika:cafebar:1.0.7'
}

Usage

Show simple CafeBar

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

Using builder

CafeBar.builder(context)
    .theme(CafeBarTheme.LIGHT)
    .content(R.string.text)
    .neutralText("Action")
    .build().show();

Retrieve CafeBar view

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

CafeBar cafeBar = builder.build();

View v = cafeBar.getCafeBarView();
//Do something

cafeBar.show();

Floating CafeBar

 CafeBar.builder(context)
    .content("some text")
    .floating(true)
    .neutralText("Floating")
    .neutralColor(Color.parseColor("#EEFF41"))
    .build().show();

CafeBar above Translucent NavigationBar

CafeBar.builder(context)
    .content(R.string.text)
    .fitSystemWindow(true)
    .neutralText("Above NavBar")
    .neutralColor(Color.parseColor("#EEFF41"))
    .build().show();

Custom Theme

CafeBar.builder(context)
    //With release 1.0.7 you can use custom theme
    //Text color (content and buttons) automatically set
    .theme(new CafeBarTheme.Custom(Color.parseColor("#F44336")));
    .content(R.string.text)
    .neutralText(R.string.action)
    .build().show();

Customization

Builder

  • customView() → Use custom view
  • to() → Set target view, it should be CoordinatorLayout
  • content() → Content text
  • contentTypeface() → Custom typeface for content
  • maxLines() → Max content lines, must be between 1 to 6.
  • duration() → Show duration
  • theme() → CafeBar theme, there are 3 choices available DARK (default), LIGHT, and CLEAR_BLACK. With release 1.0.7 you can use custom theme new CafeBarTheme.Custom().
  • icon() → Icon shown on left side of content
  • showShadow() → Enable or disable shadow
  • autoDismiss() → Enable or disable auto dismiss, default is true
  • swipeToDismiss() → Enable or disable swipe to dismiss, only works with target view CoordinatorLayout.
  • floating() → Set CafeBar style to floating
  • gravity() → Set CafeBar view gravity, only works for tablet and floating
  • fitSystemWindow() → Show CafeBar above translucent navigation bar
  • neutralText() → Neutral action text
  • neutralColor() → Neutral action text color
  • neutralTypeface() → Custom typeface for neutral text
  • onNeutral() → Neutral action callback
  • positiveText() → Positive action text
  • positiveColor() → Positive action text color
  • positiveTypeface() → Custom typeface for positive text
  • onPositive() → Positive action callback
  • negativeText() → Negative action text
  • negativeColor() → Negative action text color
  • negativeTypeface() → Custom typeface for negative text
  • onNegative() → Negative action callback
  • build() → Create CafeBar

CafeBar

  • make() → Create CafeBar
  • setAction() → It's the same with neutral action from builder, if neutralText() already set from builder setAction() will be ignored.
  • getCafeBarVIew() → Get root view of CafeBar, default is LinearLayout.
  • show() → Show CafeBar
  • dismiss() → Dismiss 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.