package com.example.asamles.app.dialog; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ImageView; import com.example.asamles.app.R; import com.example.asamles.app.constants.Constants; public class BlurredAlertDialog extends DialogFragment { private BlurredAlertDialogListener listener; public interface BlurredAlertDialogListener { public void onBlurredAlertDialogPositiveClick(DialogFragment dialog); public void onBlurredAlertDialogNegativeClick(DialogFragment dialog); public void onBlurredAlertDialogCancel(DialogFragment dialog); } public static BlurredAlertDialog newInstance(String title, String message) { BlurredAlertDialog fragment = new BlurredAlertDialog(); Bundle args = new Bundle(); args.putString(Constants.TITLE, title); args.putString(Constants.MESSAGE, message); fragment.setArguments(args); return fragment; } public static BlurredAlertDialog newInstance(String title, String message, String okButton, String cancelButton) { BlurredAlertDialog fragment = new BlurredAlertDialog(); Bundle args = new Bundle(); args.putString(Constants.TITLE, title); args.putString(Constants.MESSAGE, message); args.putString(Constants.OK, okButton); args.putString(Constants.CANCEL, cancelButton); fragment.setArguments(args); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { Context context = getActivity(); String title = getArguments() != null ? getArguments().getString(Constants.TITLE) : null; String message = getArguments() != null ? getArguments().getString(Constants.MESSAGE) : null; String okButton = getArguments() != null ? getArguments().getString(Constants.OK) : null; String cancelButton = getArguments() != null ? getArguments().getString(Constants.CANCEL) : null; if(okButton == null) { okButton = context.getString(R.string.ok); } if(cancelButton == null) { cancelButton = context.getString(R.string.cancel); } View rootView = inflater.inflate(R.layout.blurred_dialog_fragment, container, false); ImageView background = (ImageView) rootView.findViewById(R.id.image); BlurBackground blurred = new BlurBackground((Activity) context, background); blurred.setBlurredBackground(); AlertDialog.Builder adb = new AlertDialog.Builder(context) .setTitle(title) .setMessage(message) .setCancelable(true) .setPositiveButton(okButton, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { listener.onBlurredAlertDialogPositiveClick(BlurredAlertDialog.this); } }) .setNegativeButton(cancelButton, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { listener.onBlurredAlertDialogNegativeClick(BlurredAlertDialog.this); } }) .setOnCancelListener(new DialogInterface.OnCancelListener() { public void onCancel(DialogInterface dialog) { listener.onBlurredAlertDialogCancel(BlurredAlertDialog.this); } }); Dialog dialog = adb.create(); dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); dialog.show(); return rootView; } public void setBlurredAlertDialogListener(BlurredAlertDialogListener listener) { this.listener = listener; } }