// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallFun0.java
// public abstract class CallFun0<R> extends NamedSuperCall {
// 
//     public CallFun0(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract R call();
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallFun1.java
// public abstract class CallFun1<R, T1> extends NamedSuperCall {
// 
//     public CallFun1(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract R call(final T1 p1);
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallFun2.java
// public abstract class CallFun2<R, T1, T2> extends NamedSuperCall {
// 
//     public CallFun2(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract R call(final T1 p1, final T2 p2);
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallVoid0.java
// public abstract class CallVoid0 extends NamedSuperCall {
// 
//     public CallVoid0(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract void call();
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallVoid1.java
// public abstract class CallVoid1<T1> extends NamedSuperCall {
// 
//     public CallVoid1(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract void call(final T1 p1);
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallVoid2.java
// public abstract class CallVoid2<T1, T2> extends NamedSuperCall {
// 
//     public CallVoid2(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract void call(final T1 p1, final T2 p2);
// }


import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import com.pascalwelsch.compositeandroid.core.CallFun0;
import com.pascalwelsch.compositeandroid.core.CallFun1;
import com.pascalwelsch.compositeandroid.core.CallFun2;
import com.pascalwelsch.compositeandroid.core.CallVoid0;
import com.pascalwelsch.compositeandroid.core.CallVoid1;
import com.pascalwelsch.compositeandroid.core.CallVoid2;
    }

    void setShowsDialog(final CallVoid1<Boolean> superCall, boolean showsDialog) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            setShowsDialog(showsDialog);
        }
    }

    void setStyle(final CallVoid2<Integer, Integer> superCall, int style, int theme) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            setStyle(style, theme);
        }
    }

    void setupDialog(final CallVoid2<Dialog, Integer> superCall, Dialog dialog, int style) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            setupDialog(dialog, style);
        }
    }

    void show(final CallVoid2<FragmentManager, String> superCall, FragmentManager manager, String tag) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            show(manager, tag);
        }
    }

// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallFun0.java
// public abstract class CallFun0<R> extends NamedSuperCall {
// 
//     public CallFun0(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract R call();
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallFun1.java
// public abstract class CallFun1<R, T1> extends NamedSuperCall {
// 
//     public CallFun1(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract R call(final T1 p1);
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallFun2.java
// public abstract class CallFun2<R, T1, T2> extends NamedSuperCall {
// 
//     public CallFun2(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract R call(final T1 p1, final T2 p2);
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallVoid0.java
// public abstract class CallVoid0 extends NamedSuperCall {
// 
//     public CallVoid0(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract void call();
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallVoid1.java
// public abstract class CallVoid1<T1> extends NamedSuperCall {
// 
//     public CallVoid1(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract void call(final T1 p1);
// }
// 
// Path: core/src/main/java/com/pascalwelsch/compositeandroid/core/CallVoid2.java
// public abstract class CallVoid2<T1, T2> extends NamedSuperCall {
// 
//     public CallVoid2(final String methodName) {
//         super(methodName);
//     }
// 
//     public abstract void call(final T1 p1, final T2 p2);
// }


// Path: fragment/src/main/java/com/pascalwelsch/compositeandroid/fragment/DialogFragmentPlugin.java
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import com.pascalwelsch.compositeandroid.core.CallFun0;
import com.pascalwelsch.compositeandroid.core.CallFun1;
import com.pascalwelsch.compositeandroid.core.CallFun2;
import com.pascalwelsch.compositeandroid.core.CallVoid0;
import com.pascalwelsch.compositeandroid.core.CallVoid1;
import com.pascalwelsch.compositeandroid.core.CallVoid2;

    }

    void setShowsDialog(final CallVoid1<Boolean> superCall, boolean showsDialog) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            setShowsDialog(showsDialog);
        }
    }

    void setStyle(final CallVoid2<Integer, Integer> superCall, int style, int theme) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            setStyle(style, theme);
        }
    }

    void setupDialog(final CallVoid2<Dialog, Integer> superCall, Dialog dialog, int style) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            setupDialog(dialog, style);
        }
    }

    void show(final CallVoid2<FragmentManager, String> superCall, FragmentManager manager, String tag) {
        synchronized (mSuperListeners) {
            mSuperListeners.push(superCall);
            show(manager, tag);
        }
    }

    int show(final CallFun2<Integer, FragmentTransaction, String> superCall, FragmentTransaction transaction,