Awesome Dialogue Box Design



Hello,
Developers, I hope you are doing well. Dear Developers today I am sharing you Awesome Dialogue Box Design. Lets start code

Dependencies code:

apply plugin: 'com.android.application'

android {
compileSdkVersion 30
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.awesomedialog.midribtech.awesomedialog"
minSdkVersion 15
targetSdkVersion 30
versionCode 3
versionName "1.0.1"
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('androidx.test.espresso:espresso-core:3.1.0', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.13.2'
implementation project(path: ':awesomedialoglib')
}



Xml Code:



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="30dp"
tools:context="com.awesomedialog.blennersilva.awesomedialog.MainActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2"
android:layout_marginTop="30dp">

<Button
android:id="@+id/btnError"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#bf1313"
android:text="Error Dialog"
android:textColor="#fff"
android:layout_weight="1"/>

<Button
android:id="@+id/btnInfo"
android:layout_width="wrap_content"
android:layout_height="70dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#0861ce"
android:text="Info Dialog"
android:textColor="#FFFFFF"
android:layout_weight="1"/>

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">

<Button
android:id="@+id/btnProgress"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="14dp"
android:background="#8c08ce"
android:text="Progress Dialog"
android:textColor="#fff"
android:layout_weight="1"/>

<Button
android:id="@+id/btnWarning"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_below="@id/btnProgress"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#e1bc03"
android:text="Warning Dialog"
android:textColor="#fff"
android:layout_weight="1"/>


</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">

<Button
android:id="@+id/btnNotice"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#737373"
android:text="Notice Dialog"
android:textColor="#fff"
android:layout_weight="1"/>

<Button
android:id="@+id/btnSuccess"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_below="@id/btnNotice"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#04c648"
android:text="Success Dialog"
android:textColor="#fff"
android:layout_weight="1"/>


</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">

<Button
android:id="@+id/btnCustom"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#13cfec"
android:text="Custom Dialog"
android:textColor="#fff"
android:layout_weight="1"/>

<Button
android:id="@+id/btnWeb"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#1b2e31"
android:text="Web Dialog"
android:textColor="#fff"
android:layout_weight="1"/>


</LinearLayout>


<Button
android:id="@+id/btnPicker"
android:layout_width="match_parent"
android:layout_height="170dp"
android:layout_below="@id/btnWeb"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="10dp"
android:background="#df6b99"
android:text="Picker Dialog"
android:textColor="#fff"/>

</LinearLayout>

Java Code:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button btnError = (Button) findViewById(R.id.btnError);
btnError.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showErrorDialog();
}
});

Button btnInfo = (Button) findViewById(R.id.btnInfo);
btnInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showInfoDialog();
}
});

Button btnProgress = (Button) findViewById(R.id.btnProgress);
btnProgress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showProgressDialog();
}
});

Button btnWarning = (Button) findViewById(R.id.btnWarning);
btnWarning.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showWarningDialog();
}
});

Button btnNotice = (Button) findViewById(R.id.btnNotice);
btnNotice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showNoticeDialog();
}
});

Button btnSuccess = (Button) findViewById(R.id.btnSuccess);
btnSuccess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showSuccessDialog();
}
});

Button btnCustom = (Button) findViewById(R.id.btnCustom);
btnCustom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showCustomDialog();
}
});

Button btnWeb = (Button) findViewById(R.id.btnWeb);
btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showWebDialog();
}
});

Button btnPicker = (Button) findViewById(R.id.btnPicker);
btnPicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showPickerDialog();
}
});
}

private void showErrorDialog() {
new AwesomeErrorDialog(this).setButtonText(getString(R.string.dialog_ok_button)).show();
}

private void showInfoDialog() {
new AwesomeInfoDialog(this).setPositiveButtonText(getString(R.string.dialog_ok_button)).show();
}

private void showProgressDialog() {
new AwesomeProgressDialog(this).show();
}

private void showWarningDialog() {
new AwesomeWarningDialog(this).setButtonText(getString(R.string.dialog_ok_button)).show();
}

private void showNoticeDialog() {
new AwesomeNoticeDialog(this).setButtonText(getString(R.string.dialog_ok_button)).show();
}

private void showSuccessDialog() {
new AwesomeSuccessDialog(this).setPositiveButtonText(getString(R.string.dialog_ok_button)).show();
}

private void showCustomDialog() {
new AwesomeCustomDialog(this)
.setCustomButtonText(getString(R.string.dialog_ok_button))
.setCustomButtonClick(new ClosureEdit() {
@Override
public Boolean exec(EditText editText) {
Toast.makeText(MainActivity.this, ""+editText.getText().toString(), Toast.LENGTH_SHORT).show();
return true;
}
})
.setDoneButtonText(getString(R.string.dialog_done_button)).show();
}

private void showWebDialog(){
new AwesomeWebDialog(this)
.setMessageMovementWithMaxHight(300)
.setButtonText(getString(R.string.dialog_ok_button))
.show();
}



private void showPickerDialog(){
new AwesomePickerDialog(this)
.setPickerContent(new int[]{R.drawable.emoji,R.drawable.emoji2}, new String[]{getString(R.string.dialog_yes_button),getString(R.string.dialog_no_button)})
.setPickerButtonText(getString(R.string.dialog_ok_button))
.setContentHeight(100)
.show();
}
}

For Notice Dialogue Box Code:


For Button Code:

Button btnNotice = (Button) findViewById(R.id.btnNotice);
btnNotice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AwesomeNoticeDialog(this).setButtonText(getString(R.string.dialog_ok_button)).show();
}
});
private Button btDialogOk;

public AwesomeNoticeDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogNoticeBackgroundColor);
setDialogIconAndColor(R.drawable.ic_notice, R.color.white);
setButtonBackgroundColor(R.color.dialogNoticeBackgroundColor);
setCancelable(true);
}

{
btDialogOk = findView(R.id.btDialogOk);
}

For Error Dialogue Box Code:


Button btnError = (Button) findViewById(R.id.btnError);
btnError.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AwesomeErrorDialog(this).setButtonText(getString(R.string.dialog_ok_button)).show();
}
});

private Button btDialogOk;

public AwesomeErrorDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogErrorBackgroundColor);
setDialogIconAndColor(R.drawable.ic_dialog_error, R.color.white);
setButtonBackgroundColor(R.color.dialogErrorBackgroundColor);
setCancelable(true);
}

{
btDialogOk = findView(R.id.btDialogOk);
}

For Info Dialogue Box Code:

Button btnInfo = (Button) findViewById(R.id.btnInfo);
btnInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AwesomeInfoDialog(this).setPositiveButtonText(getString(R.string.dialog_ok_button)).show();
}
});

private Button positiveButton;
private Button negativeButton;

public AwesomeInfoDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogInfoBackgroundColor);
setDialogIconAndColor(R.drawable.ic_dialog_info, R.color.white);
setPositiveButtonbackgroundColor(R.color.dialogInfoBackgroundColor);
setNegativeButtonbackgroundColor(R.color.dialogInfoBackgroundColor);
setCancelable(true);
}

{
positiveButton = findView(R.id.btDialogYes);
negativeButton = findView(R.id.btDialogNo);
}

For Progress Dialogue Box Code:


Button btnProgress = (Button) findViewById(R.id.btnProgress);
btnProgress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AwesomeProgressDialog(this).show();
}
});
private ProgressBar progressBar;

public AwesomeProgressDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogProgressBackgroundColor);
setProgressBarColor(R.color.white);
}

{
progressBar = findView(R.id.dialog_progress_bar);
}

public AwesomeProgressDialog setProgressBarColor(int color) {
progressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), R.color.white), PorterDuff.Mode.SRC_IN);
return this;
}

@Override
protected int getLayout() {
return R.layout.dialog_progress;
}

XML Code: (File Name is dailog_progress)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:orientation="vertical">

<RelativeLayout
android:id="@+id/dialog_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="150dp"
android:background="@drawable/dialog_round">

<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="@string/app_name"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dialog_title"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/app_name" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:background="@drawable/circle_background">

<RelativeLayout
android:id="@+id/colored_circle"
style="@style/AlertDialog.AppCompat.CircleBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">

<ImageView
android:id="@+id/dialog_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:visibility="gone"
android:layout_centerVertical="true" />

<ProgressBar
android:id="@+id/dialog_progress_bar"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:indeterminate="true" />

</RelativeLayout>

</RelativeLayout>

</RelativeLayout>
--------------------------------*---------------------------------
For Warning Dialogue Box Code:


Button btnWarning = (Button) findViewById(R.id.btnWarning);
btnWarning.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AwesomeWarningDialog(this).setButtonText(getString(R.string.dialog_ok_button)).show();
}
});
private Button btDialogOk;

public AwesomeWarningDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogWarningBackgroundColor);
setDialogIconAndColor(R.drawable.ic_dialog_warning, R.color.black);
setButtonBackgroundColor(R.color.dialogWarningBackgroundColor);
setCancelable(true);
}

{
btDialogOk = findView(R.id.btDialogOk);
}
--------------------------------*---------------------------------
For Success Dialogue Box Code:

Button btnSuccess = (Button) findViewById(R.id.btnSuccess);
btnSuccess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AwesomeSuccessDialog(this).setPositiveButtonText(getString(R.string.dialog_ok_button)).show();
}
});

Java Class
private Button positiveButton;
private Button negativeButton;
private Button doneButton;

public AwesomeSuccessDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogSuccessBackgroundColor);
setDialogIconAndColor(R.drawable.ic_success, R.color.white);
setNegativeButtonbackgroundColor(R.color.dialogSuccessBackgroundColor);
setPositiveButtonbackgroundColor(R.color.dialogSuccessBackgroundColor);
setDoneButtonbackgroundColor(R.color.dialogSuccessBackgroundColor);
}

{
positiveButton = findView(R.id.btDialogYes);
negativeButton = findView(R.id.btDialogNo);
doneButton = findView(R.id.btDialogDone);
}

public AwesomeSuccessDialog setPositiveButtonClick(@Nullable final Closure selectedYes) {
positiveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedYes != null) {
selectedYes.exec();
}

hide();
}
});

return this;
}

public AwesomeSuccessDialog setNegativeButtonClick(@Nullable final Closure selectedNo) {
negativeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedNo != null) {
selectedNo.exec();
}

hide();
}
});

return this;
}

public AwesomeSuccessDialog setDoneButtonClick(@Nullable final Closure selectedDone) {
doneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedDone != null) {
selectedDone.exec();
}

hide();
}
});

return this;
}

public AwesomeSuccessDialog showPositiveButton(boolean show) {
if (positiveButton != null) {
positiveButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeSuccessDialog showNegativeButton(boolean show) {
if (negativeButton != null) {
negativeButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeSuccessDialog showDoneButton(boolean show) {
if (doneButton != null) {
doneButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeSuccessDialog setPositiveButtonbackgroundColor(int buttonBackground) {
if (positiveButton != null) {
positiveButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}

return this;
}

public AwesomeSuccessDialog setPositiveButtonTextColor(int textColor) {
if (positiveButton != null) {
positiveButton.setTextColor(ContextCompat.getColor(getContext(), textColor));
}

return this;
}

public AwesomeSuccessDialog setPositiveButtonText(String text) {
if (positiveButton != null) {
positiveButton.setText(text);
positiveButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeSuccessDialog setNegativeButtonbackgroundColor(int buttonBackground) {
if (negativeButton != null) {
negativeButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}

return this;
}

public AwesomeSuccessDialog setNegativeButtonText(String text) {
if (negativeButton != null) {
negativeButton.setText(text);
negativeButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeSuccessDialog setNegativeButtonTextColor(int textColor) {
if (negativeButton != null) {
negativeButton.setTextColor(ContextCompat.getColor(getContext(), textColor));
}

return this;
}

public AwesomeSuccessDialog setDoneButtonbackgroundColor(int buttonBackground) {
if (doneButton != null) {
doneButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}

return this;
}

public AwesomeSuccessDialog setDoneButtonText(String text) {
if (doneButton != null) {
doneButton.setText(text);
doneButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeSuccessDialog setDoneButtonTextColor(int textColor) {
if (doneButton != null) {
doneButton.setTextColor(ContextCompat.getColor(getContext(), textColor));
}

return this;
}


@Override
protected int getLayout() {
return R.layout.dialog_success;
}
}

XML Code for Success
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:orientation="vertical">

<RelativeLayout
android:id="@+id/dialog_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="150dp"
android:background="@drawable/dialog_round">

<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:text="@string/app_name"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dialog_title"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/app_name" />

<Button
android:id="@+id/btDialogYes"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/dialog_message"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
android:textColor="@color/white"
android:visibility="gone" />

<Button
android:id="@+id/btDialogNo"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/btDialogYes"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
android:textColor="@color/white"
android:visibility="gone" />

<Button
android:id="@+id/btDialogDone"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/btDialogNo"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
android:textColor="@color/white"
android:visibility="gone" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:background="@drawable/circle_background">

<RelativeLayout
android:id="@+id/colored_circle"
style="@style/AlertDialog.AppCompat.CircleBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">

<ImageView
android:id="@+id/dialog_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />

</RelativeLayout>

</RelativeLayout>

</RelativeLayout>
--------------------------------*---------------------------------
For Custom Dialogue Box Code:

Button btnCustom = (Button) findViewById(R.id.btnCustom);
btnCustom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showCustomDialog();
}
});

private void showCustomDialog() {
new AwesomeCustomDialog(this)
.setCustomButtonText(getString(R.string.dialog_ok_button))
.setCustomButtonClick(new ClosureEdit() {
@Override
public Boolean exec(EditText editText) {
Toast.makeText(MainActivity.this, ""+editText.getText().toString(), Toast.LENGTH_SHORT).show();
return true;
}
})
.setDoneButtonText(getString(R.string.dialog_done_button)).show();
}

Java Class:
public class AwesomeCustomDialog extends AwesomeDialogBuilder<AwesomeCustomDialog> {

private Button customButton;
private Button negativeButton;
private Button doneButton;
private EditText editText;

public AwesomeCustomDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogCustomBackgroundColor);
setDialogIconAndColor(R.drawable.ic_dialog_info, R.color.white);
setNegativeButtonbackgroundColor(R.color.dialogCustomBackgroundColor);
setCustomButtonbackgroundColor(R.color.dialogCustomBackgroundColor);
setDoneButtonbackgroundColor(R.color.dialogCustomBackgroundColor);
setEditTextUnderlineColor(R.color.dialogCustomBackgroundColor);
}

{
customButton = findView(R.id.btDialogYes);
negativeButton = findView(R.id.btDialogNo);
doneButton = findView(R.id.btDialogDone);
editText = findView(R.id.dialog_edittext);
}


public AwesomeCustomDialog setCustomButtonClick(@Nullable final ClosureEdit selectedCustom) {
customButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedCustom != null) {
if(selectedCustom.exec(editText))
hide();
}else
hide();
}
});

return this;
}

public AwesomeCustomDialog setNegativeButtonClick(@Nullable final Closure selectedNo) {
negativeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedNo != null) {
selectedNo.exec();
}

hide();
}
});

return this;
}

public AwesomeCustomDialog setDoneButtonClick(@Nullable final Closure selectedDone) {
doneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedDone != null) {
selectedDone.exec();
}

hide();
}
});

return this;
}


public AwesomeCustomDialog showCustomButton(boolean show) {
if (customButton != null) {
customButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeCustomDialog showNegativeButton(boolean show) {
if (negativeButton != null) {
negativeButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeCustomDialog showDoneButton(boolean show) {
if (doneButton != null) {
doneButton.setVisibility(View.VISIBLE);
}

return this;
}


public AwesomeCustomDialog setCustomButtonbackgroundColor(int buttonBackground) {
if (customButton != null) {
customButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}

return this;
}

public AwesomeCustomDialog setCustomButtonTextColor(int textColor) {
if (customButton != null) {
customButton.setTextColor(ContextCompat.getColor(getContext(), textColor));
}

return this;
}

public AwesomeCustomDialog setCustomButtonText(String text) {
if (customButton != null) {
customButton.setText(text);
customButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeCustomDialog setNegativeButtonbackgroundColor(int buttonBackground) {
if (negativeButton != null) {
negativeButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}

return this;
}

public AwesomeCustomDialog setNegativeButtonText(String text) {
if (negativeButton != null) {
negativeButton.setText(text);
negativeButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeCustomDialog setNegativeButtonTextColor(int textColor) {
if (negativeButton != null) {
negativeButton.setTextColor(ContextCompat.getColor(getContext(), textColor));
}

return this;
}

public AwesomeCustomDialog setDoneButtonbackgroundColor(int buttonBackground) {
if (doneButton != null) {
doneButton.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}

return this;
}

public AwesomeCustomDialog setDoneButtonText(String text) {
if (doneButton != null) {
doneButton.setText(text);
doneButton.setVisibility(View.VISIBLE);
}

return this;
}

public AwesomeCustomDialog setDoneButtonTextColor(int textColor) {
if (doneButton != null) {
doneButton.setTextColor(ContextCompat.getColor(getContext(), textColor));
}

return this;
}

public AwesomeCustomDialog setEditTextUnderlineColor(int textUnderlineColor) {

if (editText != null) {
Drawable drawable = editText.getBackground();
drawable.setColorFilter(ContextCompat.getColor(getContext(), textUnderlineColor), PorterDuff.Mode.SRC_ATOP);
if (Build.VERSION.SDK_INT > 16) {
editText.setBackground(drawable); // set the new drawable to EditText
} else {
editText.setBackgroundDrawable(drawable); // use setBackgroundDrawable because setBackground required API 16
}
}

return this;
}

public AwesomeCustomDialog setEditTextColor(int editTextColor) {

if (editText != null) {
editText.setTextColor(ContextCompat.getColor(getContext(),editTextColor));
}

return this;
}


@Override
protected int getLayout() {
return R.layout.dialog_custom;
}
}

XML File:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:orientation="vertical">

<RelativeLayout
android:id="@+id/dialog_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="150dp"
android:background="@drawable/dialog_round">

<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:text="@string/app_name"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dialog_title"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/app_name" />

<EditText
android:id="@+id/dialog_edittext"
android:textCursorDrawable="@null"
android:maxLines="1"
android:imeOptions="actionUnspecified"
android:layout_below="@id/dialog_message"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:inputType="textEmailSubject"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<Button
android:id="@+id/btDialogYes"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/dialog_edittext"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
android:visibility="gone" />

<Button
android:id="@+id/btDialogNo"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/btDialogYes"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
android:textColor="@color/white"
android:visibility="gone" />

<Button
android:id="@+id/btDialogDone"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/btDialogNo"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp"
android:textColor="@color/white"
android:visibility="gone" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="35dp"
android:background="@drawable/circle_background"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">

<RelativeLayout
android:id="@+id/colored_circle"
style="@style/AlertDialog.AppCompat.CircleBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">

<ImageView
android:id="@+id/dialog_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />

</RelativeLayout>

</RelativeLayout>

</RelativeLayout>
--------------------------------*---------------------------------
Web Dialogue Box:


Button btnWeb = (Button) findViewById(R.id.btnWeb);
btnWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showWebDialog();
}
});

private void showWebDialog(){
new AwesomeWebDialog(this)
.setMessageMovementWithMaxHight(300)
.setButtonText(getString(R.string.dialog_ok_button))
.show();
}

Java Class:
public class AwesomeWebDialog extends AwesomeDialogBuilder<AwesomeWebDialog> {
private Button btDialogOk;

public AwesomeWebDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogWebBackgroundColor);
setDialogIconAndColor(R.drawable.ic_web, R.color.white);
setButtonBackgroundColor(R.color.dialogWebBackgroundColor);
setCancelable(true);
}

{
btDialogOk = findView(R.id.btDialogOk);
}

public AwesomeWebDialog setWebButtonClick(@Nullable final Closure selecteOk) {
btDialogOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selecteOk != null) {
selecteOk.exec();
}

hide();
}
});
return this;
}

public AwesomeWebDialog setButtonBackgroundColor(int buttonBackground) {
if (btDialogOk != null) {
btDialogOk.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}
return this;
}

public AwesomeWebDialog setButtonTextColor(int textColor) {
if (btDialogOk != null) {
btDialogOk.setTextColor(ContextCompat.getColor(getContext(), textColor));
}
return this;
}

public AwesomeWebDialog setButtonText(String text) {
if (btDialogOk != null) {
btDialogOk.setText(text);
btDialogOk.setVisibility(View.VISIBLE);
}
return this;
}

@Override
protected int getLayout() {
return R.layout.dialog_web;
}
}

XML File:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:orientation="vertical">

<RelativeLayout
android:id="@+id/dialog_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="150dp"
android:background="@drawable/dialog_round">

<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:text="@string/app_name"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dialog_title"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/app_name" />

<Button
android:id="@+id/btDialogOk"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/dialog_message"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:visibility="gone"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:background="@drawable/circle_background">

<RelativeLayout
android:id="@+id/colored_circle"
style="@style/AlertDialog.AppCompat.CircleBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">

<ImageView
android:id="@+id/dialog_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />

</RelativeLayout>

</RelativeLayout>

</RelativeLayout>
--------------------------------*---------------------------------

Picker Dialogue Box:


Button Code:
Button btnPicker = (Button) findViewById(R.id.btnPicker);
btnPicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showPickerDialog();
}
});

private void showPickerDialog(){
new AwesomePickerDialog(this)
.setPickerContent(new int[]{R.drawable.emoji,R.drawable.emoji2}, new String[]{getString(R.string.dialog_yes_button),getString(R.string.dialog_no_button)})
.setPickerButtonText(getString(R.string.dialog_ok_button))
.setContentHeight(100)
.show();
}

Java Class:
public class AwesomePickerDialog extends AwesomeDialogBuilder<AwesomePickerDialog> {
private Button btDialogOk;
private ImageView iBack, iForward, iContent;
private TextView tvBelowMessage;
private RelativeLayout rPicker;
private int[] images;
private String[] messages;
private int current = 0, max;
private Boolean hasMessage = false;

public AwesomePickerDialog(Context context) {
super(context);

setColoredCircle(R.color.dialogPickerBackgroundColor);
setDialogIconAndColor(R.drawable.ic_notice, R.color.white);
setPickerButtonBackgroundColor(R.color.dialogPickerBackgroundColor);
setBackButtonBackgroundColor(R.color.dialogPickerBackgroundColor);
setForwardButtonBackgroundColor(R.color.dialogPickerBackgroundColor);
setCancelable(true);
}

{
rPicker = findView(R.id.dialog_picker);
btDialogOk = findView(R.id.btDialogOk);
iBack = findView(R.id.dialog_back);
iForward = findView(R.id.dialog_forward);
iContent = findView(R.id.dialog_content);
tvBelowMessage = findView(R.id.dialog_content_message);
iBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

if (current != 0) {
current--;
iContent.setImageResource(images[current]);
if (hasMessage)
tvBelowMessage.setText(messages[current]);
} else {
current = max;
iContent.setImageResource(images[current]);
if (hasMessage)
tvBelowMessage.setText(messages[current]);
}

}
});
iForward.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (current != max) {
current++;
iContent.setImageResource(images[current]);
if (hasMessage)
tvBelowMessage.setText(messages[current]);
} else {
current = 0;
iContent.setImageResource(images[current]);
if (hasMessage)
tvBelowMessage.setText(messages[current]);
}
}
});
}

public AwesomePickerDialog setPickerButtonClick(@Nullable final ClosurePicker selecteOk) {
btDialogOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selecteOk != null) {
selecteOk.exec(current);
}

hide();
}
});
return this;
}

public AwesomePickerDialog setPickerContent(int[] images, @Nullable String[] messages) {

this.images = images;
max = images.length - 1;
iContent.setImageResource(images[current]);
if (messages != null) {
hasMessage = true;
this.messages = messages;
tvBelowMessage.setVisibility(View.VISIBLE);
tvBelowMessage.setText(messages[current]);
}
return this;
}

public AwesomePickerDialog setContentHeight(int dp) {

if (rPicker != null) {

DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics();
dp = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));

rPicker.getLayoutParams().height = dp;
}

return this;
}


public AwesomePickerDialog setPickerButtonBackgroundColor(int buttonBackground) {
if (btDialogOk != null) {
btDialogOk.getBackground().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}
return this;
}

public AwesomePickerDialog setButtonTextColor(int textColor) {
if (btDialogOk != null) {
btDialogOk.setTextColor(ContextCompat.getColor(getContext(), textColor));
}
return this;
}

public AwesomePickerDialog setPickerButtonText(String text) {
if (btDialogOk != null) {
btDialogOk.setText(text);
btDialogOk.setVisibility(View.VISIBLE);
}
return this;
}

public AwesomePickerDialog setBackButtonBackgroundColor(int buttonBackground) {
if (iBack != null) {
iBack.getDrawable().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}
return this;
}

public AwesomePickerDialog setForwardButtonBackgroundColor(int buttonBackground) {
if (iForward != null) {
iForward.getDrawable().setColorFilter(ContextCompat.getColor(getContext(), buttonBackground), PorterDuff.Mode.SRC_IN);
}
return this;
}

public AwesomePickerDialog setContentMessageColor(int textColor) {

if (tvBelowMessage != null) {

}
return this;
}

@Override
protected int getLayout() {
return R.layout.dialog_picker;
}
}
XML File:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:orientation="vertical">

<RelativeLayout
android:id="@+id/dialog_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="150dp"
android:background="@drawable/dialog_round">

<TextView
android:id="@+id/dialog_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="40dp"
android:text="@string/app_name"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:id="@+id/dialog_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/dialog_title"
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/app_name" />

<RelativeLayout
android:id="@+id/dialog_picker"
android:layout_below="@+id/dialog_message"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:padding="10dp"
android:layout_height="wrap_content">

<ImageView
android:id="@+id/dialog_back"
android:src="@drawable/ic_back"
android:layout_centerVertical="true"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<ImageView
android:id="@+id/dialog_content"
android:layout_centerInParent="true"
android:layout_toStartOf="@+id/dialog_forward"
android:layout_toEndOf="@+id/dialog_back"
android:layout_toLeftOf="@+id/dialog_forward"
android:layout_toRightOf="@+id/dialog_back"
android:paddingStart="5dp"
android:paddingLeft="5dp"
android:paddingEnd="5dp"
android:paddingRight="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<ImageView
android:id="@+id/dialog_forward"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_forward"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</RelativeLayout>

<TextView
android:gravity="center"
android:visibility="gone"
android:layout_centerHorizontal="true"
android:id="@+id/dialog_content_message"
android:layout_below="@+id/dialog_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp" />

<Button
android:id="@+id/btDialogOk"
style="@style/RoundedDialog"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/dialog_content_message"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:visibility="gone"
android:paddingEnd="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingStart="10dp" />

</RelativeLayout>

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="35dp"
android:background="@drawable/circle_background">

<RelativeLayout
android:id="@+id/colored_circle"
style="@style/AlertDialog.AppCompat.CircleBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true">

<ImageView
android:id="@+id/dialog_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />

</RelativeLayout>

</RelativeLayout>

</RelativeLayout>

Download Source Code
https://github.com/eminsr/AwesomeDialog

Enjoy my beginner developers friends.

Post a Comment

Previous Post Next Post