public IDialog CreateDialog(Xamarin.Forms.View contentView, IDialogMsg dialogMsg, DialogConfig config)
        {
            if (contentView == null)
            {
                throw new ArgumentException($"dialog contentView is null");
            }
            if (config == null)
            {
                config = new DialogConfig();
            }
            IDialogResult dialogResult            = null;
            TaskCompletionSource <string> mission = null;

            if (contentView is IDialogElement)
            {
                DialogResultManager manager = new DialogResultManager();
                manager.Build();
                dialogResult = manager.GetDialogResult();
                mission      = manager.GetResultMission();
            }
            var dialogFragment = new BaseDialogFragment2(_activity, contentView, config, dialogMsg, dialogResult);
            var dialogDroid    = new DialogInstance(dialogFragment, _fragmentManager, contentView, mission);

            return(dialogDroid);
        }
        /// <summary>
        /// PopupView
        /// </summary>
        /// <param name="baseView"></param>
        /// <param name="popupView"></param>
        /// <param name="dialogMsg"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public IDialog PopupView(Xamarin.Forms.View baseView, Xamarin.Forms.View popupView, IDialogMsg dialogMsg, DialogConfig config)
        {
            if (baseView == null || popupView == null)
            {
                throw new ArgumentException($"dialog contentView is null");
            }

            if (config == null)
            {
                config = new DialogConfig()
                {
                    DialogPosition = DialogPosition.Buttom
                };
            }
            IDialogResult dialogResult            = null;
            TaskCompletionSource <string> mission = null;

            if (popupView is IDialogElement)
            {
                DialogResultManager manager = new DialogResultManager();
                manager.Build();
                dialogResult = manager.GetDialogResult();
                mission      = manager.GetResultMission();
            }
            var rect           = GetBaseViewRect(baseView);
            var dialogFragment = new PopupDialogFragment(_activity, popupView, config, dialogMsg, rect, dialogResult);
            var dialogDroid    = new DialogInstance(dialogFragment, _fragmentManager, popupView, mission);

            return(dialogDroid);
        }
        public IDialog CreateDialog(DialogType dialogType, IDialogMsg dialogMsg, DialogConfig config = null)
        {
            var contentView = _dialogsInitize.GetInitDialogContentView(dialogType);

            if (contentView == null)
            {
                throw new Exception($"{dialogType} not map");
            }
            if (config == null)
            {
                config = _dialogsInitize.GetInitDialogConfig(dialogType);
            }
            DialogResultManager manager = new DialogResultManager();

            manager.Build();
            var dialogFragment = new BaseDialogFragment2(_activity, contentView, config, dialogMsg,
                                                         manager.GetDialogResult());
            var dialogDroid = new DialogInstance(dialogFragment, _fragmentManager, contentView,
                                                 manager.GetResultMission());

            return(dialogDroid);
        }