Home

Awesome

<p align="center" > <picture> <source media="(prefers-color-scheme: dark)" srcset="media/logo_named_right_darkmode.png"> <source media="(prefers-color-scheme: light)" srcset="media/logo_named_right.png"> <img width="50%" src="media/logo_named_right.png"> </picture> </p>

SimpleDialogFragments

API 14+ Maven Central JitPack Code Climate Rating Github CI License

<img width="40%" align="right" src="https://github.com/eltos/SimpleDialogFragments/raw/main/media/screenshot.png"/>

SimpleDialogFragments Library is a collection of easy to use and extendable DialogFragment's for Android. It is fully compatible with rotation changes and can be implemented with only a few lines of code.

A new approach of result handling ensures data integrity over rotation changes, that many other libraries lack.

🧑‍đŸ’ģ APIℹī¸ Wiki🚀 Releases
đŸ–ŧī¸ Screenshots📱 DemođŸĒ™ Donate

Features

Usage

Check the release page for the latest and older versions:

In your module level build.gradle when using mavenCentral:

dependencies {
    implementation 'io.github.eltos:simpledialogfragments:3.8.3'
}

or if using JitPack:

dependencies {
    implementation 'com.github.eltos:simpledialogfragments:v3.8.3'
}

Building dialogs

Building dialogs is very easy and short handed:

SimpleDialog.build()
            .title(R.string.hello)
            .msg(R.string.hello_world)
            .show(this);

Check the wiki pages for instructions and examples on how to build the different dialogs available.

Receive Results

Supply a tag when showing the dialog and let the hosting Activity or Fragment implement the SimpleDialog.OnDialogResultListener.
For details, please refere to the wiki pages.

@Override
public boolean onResult(@NonNull String dialogTag, int which, @NonNull Bundle extras) {
    if (YES_NO_DIALOG.equals(dialogTag) && which == BUTTON_POSITIVE){
        // ...
        return true;
    }
    if (LIST_DIALOG.equals(dialogTag) && which == BUTTON_POSITIVE){
        ArrayList<Integer> pos = extras.getIntegerArrayList(SimpleListDialog.SELECTED_POSITIONS);
        // ...
        return true;
    }
    if (REGISTRATION_DIALOG.equals(dialogTag) && which == BUTTON_POSITIVE){
        String username = extras.getString(USERNAME);
        String password = extras.getString(PASSWORD);
        // ...
        return true;
    }
    // ...
    return false;
}

Extensions

Known extensions and projects using this library:

License

Copyright 2017-2022 Philipp Niedermayer (github.com/eltos)

Licensed under the Apache License 2.0

You may only use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software in compliance with the License. For more information visit http://www.apache.org/licenses/LICENSE-2.0
The above copyright notice alongside a copy of the Apache License shall be included in all copies or substantial portions of the Software not only in source code but also in a license listing accessible by the user.