Awesome
:speech_balloon: SSCompose-CustomInfoBar :speech_balloon:
<div align="center"> </div> <!-- Description -->Welcome to our SSCompose-CustomInfoBar Library! :tada: Tired of generic snackbars? This Jetpack Compose library offers a powerful and customizable way to display informative messages within your app.
:zap: Features
- Content: Add :speech_balloon: text, icons, or even custom composables to your info bar for ultimate flexibility.
- Position: Display the info bar strategically at the :point_up: top or :point_down: bottom of your screen.
- Duration: Control how long the info bar stays visible, from indefinite to short :zap: or long : hourglass: durations.
- Styles: Predefined styles like :warning: error, :information_source: info, and warning are available, or craft your own style with custom background, text color, and icons.
- Swipe to dismiss: Users can dismiss the info bar with a simple swipe, providing an interactive touch.
- Look & Feel: :paintbrush: Customize the info bar's shape, color, and elevation to seamlessly match your app's design.
- Theming: Integrate with Jetpack Compose's theming system for a consistent and beautiful look across your app.
- Animations: :tada: Liven up your info bars with various built-in entrance and exit animations.
- Offline Notifications: :signal_strength: A constructor flag which allows to automatically displays an info bar giving "you are offline" notification.
- Action button: :+1: Optional action button to show on InfoBar.
- On Dismiss Callback: Get notified about bar dismissal.
- Queueing System: :repeat: Display multiple info bars sequentially.
NOTE:
- Scroll to show and hide info bar feature work only with LazyListState.
- If the duration of infoBar is infinite then the queue feature won't work.
- Currently there is no limit to how many info bars can be added to queue for displaying.
:framed_picture: Preview
Full Preview |
---|
<video src="https://github.com/SimformSolutionsPvtLtd/SSCompose-CustomInfoBar/assets/125441434/303282b1-91c2-4094-b030-923403be1e85" /> |
Default Demo | Error Themed | Warning Themed |
---|---|---|
<img src="/gifs/default.gif" height="500px" /> | <img src="/gifs/error.gif" height="500px" /> | <img src="/gifs/warning.gif" height="500px" /> |
Success Themed | Annotated Strings | Gradient Background |
---|---|---|
<img src="/gifs/success.gif" height="500px" /> | <img src="/gifs/annotated.gif" height="500px" /> | <img src="/gifs/gradient.gif" height="500px" /> |
SVG Background | PNG Background | Action Button |
---|---|---|
<img src="/gifs/svg.gif" height="500px" /> | <img src="/gifs/png.gif" height="500px" /> | <img src="/gifs/action.gif" height="500px" /> |
:books: How it works:
-
Add the dependency in your app's build.gradle file
dependencies { implementation("com.github.SimformSolutionsPvtLtd:SSCompose-CustomInfoBar:1.0") }
-
Add the JitPack repository
For latest Android Studio, in settings.gradle file inside
dependencyResolutionManagement
blockdependencyResolutionManagement { repositories { ... maven { url = uri("https://jitpack.io") } } }
-
Create ComposeInfoHost with default parameters to host ComposeInfoBar (NOTE: Here we are not passing an custom ComposeInfoBar so it will use a default implementation. To show custom ComposeInfoBar check out SSComposeInfoHost-Customisation-Guide)
val composeInfoHostState by remember { mutableStateOf(SSComposeInfoHostState()) } SSComposeInfoHost( modifier = Modifier .fillMaxSize(), composeHostState = composeInfoHostState ) { MainComposable() }
-
Show composeInfoBar anywhere in your project
val coroutineScope = rememberCoroutineScope() var duration by remember { mutableStateOf(SSComposeInfoDuration.Short) } coroutineScope.launch { composeInfoHostState.show( infoBarData = SSComposeInfoBarData(title, description), duration = duration ) }
-
For full customisation of SSComposeInfoBar checkout SSComposeInfoBar-Customisation-Guide
:heart: Find this samples useful?
Support it by joining stargazers :star: for this repository.
:handshake: How to Contribute?
Whether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! :
muscle:
Check out our Contributing Guide for ideas on contributing.
:lady_beetle: Bugs and Feedback
For bugs, feature requests, and discussion use GitHub Issues.
:rocket: Other Mobile Libraries
Check out our other libraries Awesome-Mobile-Libraries.
:balance_scale: License
Distributed under the MIT license. See LICENSE for details.
<!-- Reference links --> <!-- Badges -->