Alerter - An Android Alerter Library, now in Kotlin!
This library aims to overcome the limitations of Toasts and Snackbars, while reducing the complexity of your layouts.
General
With simplicity in mind, the Alerter employs the builder pattern to facilitate easy integration into any app. A customisable Alert view is dynamically added to the Decor View of the Window, overlaying all content.
Gradle
dependencies {
implementation 'com.tapadoo.android:alerter:$current-version'
}
Kotlin
Version 3.0.0 and above requires Kotlin
AndroidX
Version 4.0.0 includes support for AndroidX dependencies. If you experience issues with this update,
please ensure you have enabled AndroidX & Jetifier in your gradle.properties
file:
android.useAndroidX=true
android.enableJetifier=true
Usage
From an Activity -
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.show()
Or from a Fragment -
Alerter.create(activity)
.setTitle("Alert Title")
.setText("Alert text...")
.show()
To check if an alert is showing -
Alerter.isShowing()
To hide a currently showing Alert -
Alerter.hide()
Customisation
Background Colour
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.setBackgroundColorRes(R.color.colorAccent) // or setBackgroundColorInt(Color.CYAN)
.show()
Icon
Alerter.create(this@DemoActivity)
.setText("Alert text...")
.setIcon(R.drawable.alerter_ic_mail_outline)
.setIconColorFilter(0) // Optional - Removes white tint
.setIconSize(R.dimen.custom_icon_size) // Optional - default is 38dp
.show()
On screen duration, in milliseconds
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.setDuration(10000)
.show()
Without title
Alerter.create(this@DemoActivity)
.setText("Alert text...")
.show()
Adding an On Click Listener
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.setDuration(10000)
.setOnClickListener(View.OnClickListener {
Toast.makeText(this@DemoActivity, "OnClick Called", Toast.LENGTH_LONG).show();
})
.show()
Verbose text
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("The alert scales to accommodate larger bodies of text. " +
"The alert scales to accommodate larger bodies of text. " +
"The alert scales to accommodate larger bodies of text.")
.show()
Custom Enter/Exit Animations
Alerter.create(this@KotlinDemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.setEnterAnimation(R.anim.alerter_slide_in_from_left)
.setExitAnimation(R.anim.alerter_slide_out_to_right)
.show()
Visibility Callbacks
Alerter.create(this@KotlinDemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.setDuration(10000)
.setOnShowListener(OnShowAlertListener {
Toast.makeText(this@KotlinDemoActivity, "Show Alert", Toast.LENGTH_LONG).show()
})
.setOnHideListener(OnHideAlertListener {
Toast.makeText(this@KotlinDemoActivity, "Hide Alert", Toast.LENGTH_LONG).show()
})
.show()
Custom Fonts and Text Appearance
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setTitleAppearance(R.style.AlertTextAppearance_Title)
.setTitleTypeface(Typeface.createFromAsset(getAssets(), "Pacifico-Regular.ttf"))
.setText("Alert text...")
.setTextAppearance(R.style.AlertTextAppearance_Text)
.setTextTypeface(Typeface.createFromAsset(getAssets(), "ScopeOne-Regular.ttf"))
.show()
Swipe to Dismiss
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.enableSwipeToDismiss()
.show()
Progress Bar
Alerter.create(this@DemoActivity)
.setTitle("Alert Title")
.setText("Alert text...")
.enableProgress(true)
.setProgressColorRes(R.color.colorAccent)
.show()
With Buttons
Alerter.create(this@KotlinDemoActivity)
.setTitle(R.string.title_activity_example)
.setText("Alert text...")
.addButton("Okay", R.style.AlertButton, View.OnClickListener {
Toast.makeText(this@KotlinDemoActivity, "Okay Clicked", Toast.LENGTH_LONG).show()
})
.addButton("No", R.style.AlertButton, View.OnClickListener {
Toast.makeText(this@KotlinDemoActivity, "No Clicked", Toast.LENGTH_LONG).show()
})
.show()
With Custom Layout
Alerter.create(this@KotlinDemoActivity, R.layout.custom_layout)
.setBackgroundColorRes(R.color.colorAccent)
.also { alerter ->
val tvCustomView = alerter.getLayoutContainer()?.tvCustomLayout
tvCustomView?.setText(R.string.with_custom_layout)
}
.show()
Licence
See the LICENSE file for license rights and limitations (MIT).
Copyright 2017 Tapadoo, Dublin.