#set( $regex = "([a-z])([A-Z]+)") #set( $replacement = "$1_$2") #set( $dashName = $NAME.replaceAll($regex, $replacement).toLowerCase()) import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import javax.inject.Inject; import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; public class Dialog${NAME}View extends BaseDialogFragment { /* Create the following layout resource file [dialog_${dashName}.xml] */ @Inject Dialog${NAME}ViewModel mViewModel; //private Dialog${NAME}Binding mBindings; private Context mContext; //Pass here all external parameters public static Dialog${NAME}View newInstance() { return new Dialog${NAME}View(); } private Dialog${NAME}View() { super(); } @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { this.mContext = requireContext(); //mBindings = Dialog${NAME}Binding.inflate(LayoutInflater.from(this.mContext), null, false); //mBindings.setLifecycleOwner(this); /* - Add following lines into MainApplicationComponent [a] into @Component Dialog${NAME}Module.class [b] into interface body Dialog${NAME}Component.Factory dialog${NAME}Component(); */ MainApplication.appComponent .dialog${NAME}Component() .create() .inject(this); setCancelable(false); var alertDialog = new MaterialAlertDialogBuilder(this.mContext) .setView(mBindings.getRoot()) .setCancelable(isCancelable()) .create(); alertDialog.setCanceledOnTouchOutside(isCancelable()); alertDialog.setOnShowListener(this); return alertDialog; } }