Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gzeinnumer/DialogAndroid

Repository files navigation

DialogAndroid - Easy Dialog


Simple way to use Dialog Fragment


Content List


Download

Add maven jitpack.io and dependencies in build.gradle (Project) :

// build.gradle project
allprojects {
 repositories {
 ...
 maven { url 'https://jitpack.io' }
 }
}
// build.gradle app/module
dependencies {
 ...
 implementation 'com.google.android.material:material:1.3.0'
 implementation 'com.github.gzeinnumer:DialogAndroid:version'
 implementation 'com.github.gzeinnumer:SimpleMaterialStyle:last-vesion'
 //check on https://github.com/gzeinnumer/SimpleMaterialStyle
}

Feature List


Tech stack and 3rd library

  • Material.io (docs)
  • agrawalsuneet/DotLoadersPack-Android (docs)
  • DialogFragment (docs)

Usage

First Step. Use MaterialComponents in your style :

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
 <!-- Customize your theme here. -->
</style>
<style name="CustomDialogStyle" parent="Theme.MaterialComponents.Light.Dialog">
 <item name="colorPrimary">@color/colorPrimary</item>
 <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
 <item name="colorAccent">@color/colorAccent</item>
 <item name="android:windowMinWidthMajor">80%</item>
 <item name="android:windowMinWidthMinor">80%</item>
 <item name="android:windowEnterAnimation">@anim/anim_in</item>
 <item name="android:windowExitAnimation">@anim/anim_out</item>
</style>

Add This Line to res/color.xml. Important

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <color name="colorPrimary">#6200EE</color>
 <color name="colorPrimaryDark">#3700B3</color>
 <color name="colorAccent">#03DAC5</color>
</resources>

If you want to change default font, add custom_font.ttf to your res directory res->font. Than add this style to your style.xml/themes.xml

If you want to change default margin in dialog, add dimens.xml to your res directory res->value->dimens.xml.

ConfirmDialog

Dialog with 1 Title, 1 Content, 1 Negative Button, 1 Positive Button.

new ConfirmDialog(getSupportFragmentManager())
 .setTitle("ini title")
 .setContent("ini content")
 .onCancelPressedCallBack(new ConfirmDialog.OnCancelPressed() {
 @Override
 public void onCancelPressed() {
 Toast.makeText(MainActivity.this, "Cancel", Toast.LENGTH_SHORT).show();
 }
 })
 .onOkPressedCallBack(new ConfirmDialog.OnOkPressed() {
 @Override
 public void onOkPressed() {
 Toast.makeText(MainActivity.this, "Ok", Toast.LENGTH_SHORT).show();
 }
 })
 .show();

or you can write code like this :

ConfirmDialog dialog = new ConfirmDialog(getSupportFragmentManager())
 .setTitle("ini title")
 .setContent("ini content");
dialog.onCancelPressedCallBack(new ConfirmDialog.OnCancelPressed() {
 @Override
 public void onCancelPressed() {
 Toast.makeText(MainActivity.this, "Cancel", Toast.LENGTH_SHORT).show();
 }
});
dialog.onOkPressedCallBack(new ConfirmDialog.OnOkPressed() {
 @Override
 public void onOkPressed() {
 Toast.makeText(MainActivity.this, "Ok", Toast.LENGTH_SHORT).show();
 }
});
dialog.show();

To enable CanceledOnTouchOutside :

new ConfirmDialog(getSupportFragmentManager())
 .setCanceledOnTouchOutside(true)

Preview :

ConfirmDialog -> Customize

You can Customize your dialog UI. ReadMore.


InfoDialog

Dialog with 1 Title, 1 Content, 1 Positif Button.

Code :

new InfoDialog(getSupportFragmentManager())
 .setDialogType(DialogType.DialogSuccess)
 .setTitle("ini title")
 .setContent("ini content")
 .onOkPressedCallBack(new InfoDialog.OnOkPressed() {
 @Override
 public void onOkPressed() {
 Toast.makeText(MainActivity.this, "Ok", Toast.LENGTH_SHORT).show();
 }
 })
 .show();

To enable CanceledOnTouchOutside :

new InfoDialog(getSupportFragmentManager())
 .setCanceledOnTouchOutside(true)

To set auto Click Button Ok :

new InfoDialog(getSupportFragmentManager())
 .autoDismisOnSecond(10)

Preview :

InfoDialog -> Customize

You can Customize your dialog UI. ReadMore.


NumberPickerDialog

Dialog with 1 Title, 1 Content, 1 Positif Button, 1 Negatif Button, 1 EditText, 1 Add Button, 1 Substract Button.

Code :

new NumberPickerDialog(getSupportFragmentManager())
 .setLastValue(12)
 .setTitle("ini title")
 .setContent("ini content")
 .onOkPressedCallBack(new NumberPickerDialog.OnOkPressed() {
 @Override
 public void onOkPressed(int value) {
 Toast.makeText(MainActivity.this, "Nilai nya " + value, Toast.LENGTH_SHORT).show();
 }
 })
 .onCancelPressedCallBack(new NumberPickerDialog.OnCancelPressed() {
 @Override
 public void onCancelPressed() {
 Toast.makeText(MainActivity.this, "Cancel", Toast.LENGTH_SHORT).show();
 }
 })
 .show();

To enable CanceledOnTouchOutside :

new NumberPickerDialog(getSupportFragmentManager())
 .setCanceledOnTouchOutside(true)

Preview :

NumberPickerDialog -> Customize

You can Customize your dialog UI. ReadMore.


LoadingDialog

Dialog with 1 Title, 1 Animation Loading that you can use.

Code :

LoadingDialog loadingDialog = new LoadingDialog(getSupportFragmentManager())
 .setContent("ini content");
loadingDialog.show();
loadingDialog.dismis();

Preview :

LoadingDialog -> Customize

You can Customize your dialog UI. ReadMore.


SingleDatePickerDialog

Dialog with Calender like in material.io that you can use to pick single date.

Code :

new SingleDatePickerDialog(getSupportFragmentManager())
 .setTimeZone("GMT")
 .setTitle("Pilih tanggal")
 .setSelectedToday(true)
 .setTimeFormat("dd/MM/yyyy") //pastikan polanya sama
 .setStartDate("1/08/2020") //pastikan polanya sama
 .setEndDate("31/12/2020") //pastikan polanya sama
 .onOkPressedCallBack(new SingleDatePickerDialog.OnOkPressed() {
 @Override
 public void onOkPressed(String value) {
 Toast.makeText(MainActivity.this, value, Toast.LENGTH_SHORT).show();
 }
 })
 .build()
 .show();
  • setTimeZone() optional . default value GMT.
  • setTimeFormat() optional. default value dd-MM-yyyy.
  • setStartDate() optional.
  • setEndDate() optional.

Preview :

SingleDatePickerDialog -> Customize

You can Customize your dialog UI. ReadMore.


MultiDatePickerDialog

Dialog with Calender like in material.io that you can use to pick date with range.

Code :

new MultiDatePickerDialog(getSupportFragmentManager())
 .setTimeZone("GMT")
 .setTitle("Pilih tanggal")
 .setTimeFormat("dd/MM/yyyy") //pastikan 3 pola ini sama
 .setStartDate("1/08/2020") //pastikan 3 pola ini sama
 .setEndDate("31/12/2020") //pastikan 3 pola ini sama
 .onOkPressedCallBack(new MultiDatePickerDialog.OnOkPressed() {
 @Override
 public void onOkPressed(String firstDate, String secondDate) {
 Toast.makeText(MainActivity.this, firstDate + " - " + secondDate, Toast.LENGTH_SHORT).show();
 }
 })
 .build()
 .show();
  • setTimeZone() optional . default value GMT.
  • setTimeFormat() optional. default value dd-MM-yyyy.
  • setStartDate() optional.
  • setEndDate() optional.

Preview :

MultiDataPickerDialog -> Customize

You can Customize your dialog UI. ReadMore.


TimeDialog

Dialog with Calender like in material.io that you can use to pick date with range.

Code :

new TimeDialog(getSupportFragmentManager())
 .setTitle("Time")
 .setHour(17)
 .setMinute(17)
 .setTimeFormat(TimeFormat.CLOCK_24H) //TimeFormat.CLOCK_12H
 .addOnPositiveButtonClickListener(new TimeDialogPositiveCallBack() {
 @Override
 public void timeResult(int hours, int minutes) {
 Toast.makeText(MainActivity.this, hours+":"+minutes, Toast.LENGTH_SHORT).show();
 }
 })
 .build()
 .show();
  • setTitle() optional . default value Pick Time.
  • setHour() optional. default value 0.
  • setMinute() optional. default value 0.
  • setTimeFormat() optional. default value TimeFormat.CLOCK_12H.

Preview :

TimeFormat.CLOCK_12H TimeFormat.CLOCK_24H

DebugDialog

Dialog for debug.

Code :

new DebugDialog(getSupportFragmentManager())
 .setAnimationStyle(R.style.CustomDialogStyle)
 .setContent(DumpJSON.msg1)
 .onOkPressedCallBack(() -> {
 //ok action
 })
 .show();

Example Code/App

Sample Code And App


Version

  • 1.0.5
    • First Release
  • 1.0.6
    • Add Custom Animation
  • 1.0.7
    • SetDefault Animation
  • 1.0.9
    • Fix Animation
  • 2.0.0
    • Enable or disable TextAllCaps
  • 2.0.1
    • Bugs Fixing
  • 2.0.2
    • add enable CanceledOnTouchOutside
  • 2.0.3
    • Bugs Fixing Style
  • 2.0.4
    • Color
  • 2.1.1
    • Add Auto Click
  • 2.1.2
    • Bug Fixing
  • 2.1.5
    • Bug Fixing
  • 2.1.6
    • Bug Fixing
  • 2.1.9
    • Bug Fixing
  • 2.2.1
    • Bug Fixing
  • 2.2.2
    • Change color method
  • 3.0.0
    • Support SDK 16
  • 3.1.0
    • Spesial Button Color Contained
  • 3.1.1
    • More Space Button Parent
  • 3.2.0
    • Time Picker
  • 3.2.1
    • Bug Fixing
  • 3.2.2
    • Bug Fixing
  • 3.2.3
    • Bug Fixing
  • 3.2.4
    • Remove Default Animation and Color
  • 3.2.5
    • Bug Color
  • 3.2.6
    • Bug Color
  • 3.2.7
    • Bug Color
  • 3.2.8
    • Bug Fixing
  • 3.2.9
    • Bug Fixing
  • 3.3.0
    • Remove Space From Button
  • 3.3.1
    • Add CharSequence to Title and Content
  • 3.3.2
    • Improve Space Between TextButton
  • 3.3.3
    • Spesial For Debug Dialog
  • 3.3.4
    • New Space
  • 3.3.5
    • Space
  • 3.3.7
    • Copy Text From DebugDialog
  • 3.3.8
    • Remove Dot

Contribution

You can sent your constibution to branch open-pull.


Copyright 2020 M. Fadli Zein

AltStyle によって変換されたページ (->オリジナル) /