avast / android-styled-dialogs

Backport of Material dialogs with easy-to-use API based on DialogFragment
Apache License 2.0
2.15k stars 450 forks source link

No callback method is triggered in case that methods are called on standAlone helper #125

Closed r0boto closed 8 years ago

r0boto commented 9 years ago

Hello,

I created custom helper which is displaying dialog alerts.

public class DialogMaterialHelper extends AppCompatActivity implements
        ISimpleDialogListener,
        IDateDialogListener,
        ISimpleDialogCancelListener,
        IListDialogListener,
        IMultiChoiceListDialogListener {

    private Context mCtx;
    private FragmentManager mFragmentManager;
    private Intent mIntentToPass;
    private ToastHelper mToastHelper;

    public DialogMaterialHelper(Context ctx, FragmentManager fragmentManager) {
        this.mCtx = ctx;
        this.mToastHelper = new ToastHelper(ctx);
        this.mFragmentManager = fragmentManager;
    }

    /**
     * Display prompt dialog
     */
    public void showPromptDialog(int title, int text, int positiveButtonText, int negativeButtonText, Drawable icon) {
        SimpleDialogFragment
                .createBuilder(mCtx, mFragmentManager)
                .setTitle(title)
                .setMessage(text)
                .setPositiveButtonText(positiveButtonText)
                .setNegativeButtonText(negativeButtonText)
                .setCancelable(Constants.Global.CANCELABLE_NOTIFICATIONS)
                .setRequestCode(123)
                .show();
    }

Methods for displaying are called from the controller by this way:

DialogMaterialHelper ah = new DialogMaterialHelper(this, getSupportFragmentManager());
// Prompt dialog
            ah.showPromptDialog(R.string.dialog_title,
                    R.string.dialog_content_text, R.string.positive_button_text, R.string.negative_button_text,
                    ch.getDrawableFromResource(R.drawable.common_signin_btn_icon_normal_dark));

But after the click on the Positive or the negative button is no callback triggered:

 // Event callbacks
    @Override
    public void onPositiveButtonClicked(int requestCode, Date date) {
        Logger.i("Value is: " +String.valueOf(requestCode));
        Logger.i("onPositiveButtonClicked");
    }

    @Override
    public void onNegativeButtonClicked(int requestCode, Date date) {
        Logger.i("onNegativeButtonClicked");
    }

    @Override
    public void onListItemSelected(CharSequence charSequence, int selectedPosition, int requestCode) {
        Logger.i("onListItemSelected");
    }

    @Override
    public void onListItemsSelected(CharSequence[] charSequences, int[] selectedPositions, int requestCode) {
        Logger.i("onListItemsSelected");
    }

    @Override
    public void onNegativeButtonClicked(int i) {
        Logger.i("onNegativeButtonClicked");
    }

    @Override
    public void onNeutralButtonClicked(int i) {
        Logger.i("onNeutralButtonClicked");
    }

    @Override
    public void onPositiveButtonClicked(int requestCode) {
        Logger.i("Value is: " +String.valueOf(requestCode));
        Logger.i("onPositiveButtonClicked");
    }

    @Override
    public void onCancelled(int i) {
        Logger.i("onCancelled");
    }

How can i solve it this issue please?

davidvavra commented 8 years ago

Dialog needs to be launched either from Activity or Fragment in order for callbacks to be called. You are inheriting from Activity, but you are not launching the Activity, you just instantiate the class. That's the problem.