MCPcopy Index your code
hub / github.com/avast/android-styled-dialogs

github.com/avast/android-styled-dialogs @2.3.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.3.3 ↗ · + Follow
181 symbols 415 edges 20 files 35 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

StyledDialogs for Android

Build Status License Android Arsenal

Screenshot of the dialogs

Demo app:

Get it on Google Play

Features:

  • Compatible with Material Design Guidelines
  • Same look for Android 2.2+
  • Built on top of standard DialogFragment
  • Supports stacked buttons, neutral button, callbacks even after rotation
  • Light and dark theme
  • Contains even more specialized dialogs: List, Progress, Time&Date Picker, Custom, ...

How to include it in your project:

dependencies {
    compile 'com.avast:android-styled-dialogs:2.3.3'
}

Hosted in jcenter: Download

Looking for Holo dialogs?

How to style all dialogs:

It uses standard Material colors, for example like this:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/indigo</item>
        <item name="colorPrimaryDark">@color/indigo_dark</item>
        <item name="colorAccent">@color/pink</item>
</style>

For dark theme, inherit from Theme.AppCompat. Or you can force dark theme per individual dialog using useDarkTheme() builder method. You can also force light theme per individual dialog using useLightTheme() builder method.

How to create simple dialogs:

Easy:

Dialog with a simple message only:

SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setMessage(R.string.message).show();

Dialog with a title, message and two buttons:

SimpleDialogFragment.createBuilder(this, getSupportFragmentManager()).setTitle(R.string.title).setMessage(R.string.message).setPositiveButtonText(R.string.positive_button).setNegativeButtonText(R.string.negative_button).show();

How to react on button press in your Activity/Fragment:

Simply implement interface ISimpleDialogListener in your Activity/Fragment. Listener's callbacks have requestCode parameter - you can use it if you have more dialogs in one Activity/Fragment.

For Fragments use setTargetFragment() method in the builder.

It's not possible to use normal Java callbacks, because they are lost after device rotation.

How to react on cancelling the dialog:

Implement interface ISimpleDialogCancelListener in your Activity/Fragment.

How to create custom DialogFragments:

Extend BaseDialogFragment.

Have a look at JayneHatDialogFragment for a practical example.

Contributing

Pull requests are welcomed!

Please set your Android Studio formatting to our code style.

Why 'Dialogs'?

Theodor Dialogs was a famous Czech painter, uncle of Jára Cimrman. Jára Cimrman was a playwright, philosopher, inventor, teacher, poet, mathematician and more but he lacked painting skills. That's why Theodor was helping him with many projects. Just like Android and this library do.

See our other Czech personalities who help with #AndroidDev.

Extension points exported contracts — how you extend this code

IDateDialogListener (Interface)
Implement this interface in Activity or Fragment to react to positive and negative buttons of date/time dialog. @author [2 …
library/src/main/java/com/avast/android/dialogs/iface/IDateDialogListener.java
IMultiChoiceListDialogListener (Interface)
Interface for ListDialogFragment in modes: CHOICE_MODE_MULTIPLE Implement it in Activity or Fragment to react to item se [2 …
library/src/main/java/com/avast/android/dialogs/iface/IMultiChoiceListDialogListener.java
ISimpleDialogCancelListener (Interface)
Implement this interface in Activity or Fragment to react when the dialog is cancelled. This listener is common for all [2 …
library/src/main/java/com/avast/android/dialogs/iface/ISimpleDialogCancelListener.java
IListDialogListener (Interface)
Interface for ListDialogFragment in modes: CHOICE_MODE_NONE, CHOICE_MODE_SINGLE Implement it in Activity or Fragment to [2 …
library/src/main/java/com/avast/android/dialogs/iface/IListDialogListener.java
ISimpleDialogListener (Interface)
Implement this interface in Activity or Fragment to react to positive, negative and neutral dialog buttons. @author Dav [1 …
library/src/main/java/com/avast/android/dialogs/iface/ISimpleDialogListener.java

Core symbols most depended-on inside this repo

show
called by 25
demo/src/main/java/com/avast/dialogs/JayneHatDialogFragment.java
set
called by 13
library/src/main/java/com/avast/android/dialogs/core/BaseDialogFragment.java
getView
called by 9
library/src/main/java/com/avast/android/dialogs/fragment/ListDialogFragment.java
get
called by 9
library/src/main/java/com/avast/android/dialogs/util/TypefaceHelper.java
setTitle
called by 8
library/src/main/java/com/avast/android/dialogs/core/BaseDialogFragment.java
getDialogListeners
called by 7
library/src/main/java/com/avast/android/dialogs/fragment/DatePickerDialogFragment.java
self
called by 7
library/src/main/java/com/avast/android/dialogs/core/BaseDialogBuilder.java
setRequestCode
called by 7
library/src/main/java/com/avast/android/dialogs/core/BaseDialogBuilder.java

Shape

Method 156
Class 17
Interface 8

Languages

Java100%

Modules by API surface

library/src/main/java/com/avast/android/dialogs/fragment/ListDialogFragment.java34 symbols
library/src/main/java/com/avast/android/dialogs/core/BaseDialogFragment.java30 symbols
library/src/main/java/com/avast/android/dialogs/fragment/SimpleDialogFragment.java22 symbols
library/src/main/java/com/avast/android/dialogs/fragment/DatePickerDialogFragment.java19 symbols
library/src/main/java/com/avast/android/dialogs/core/BaseDialogBuilder.java14 symbols
demo/src/main/java/com/avast/dialogs/DemoActivity.java12 symbols
library/src/main/java/com/avast/android/dialogs/fragment/ProgressDialogFragment.java10 symbols
library/src/main/java/com/avast/android/dialogs/util/CheckableLinearLayout.java7 symbols
library/src/main/java/com/avast/android/dialogs/util/SparseBooleanArrayParcelable.java6 symbols
demo/src/main/java/com/avast/dialogs/JayneHatDialogFragment.java5 symbols
library/src/main/java/com/avast/android/dialogs/fragment/TimePickerDialogFragment.java4 symbols
library/src/main/java/com/avast/android/dialogs/iface/IDateDialogListener.java3 symbols

For agents

$ claude mcp add android-styled-dialogs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact