Пример #1
0
        private void CreateActions(List <string> actions, MaterialSimpleDialogConfiguration configuration)
        {
            if (actions == null || actions.Count <= 0)
            {
                throw new ArgumentException("Parameter actions should not be null or empty");
            }

            var actionModels = new List <ActionModel>();

            actions.ForEach(a =>
            {
                var preferredConfig = configuration ?? GlobalConfiguration;
                var actionModel     = new ActionModel {
                    Text = a
                };
                actionModel.TextColor       = preferredConfig != null ? preferredConfig.TextColor : Color.FromHex("#DE000000");
                actionModel.FontFamily      = preferredConfig != null ? preferredConfig.TextFontFamily : Material.FontFamily.Body1;
                actionModel.SelectedCommand = new Command <int>(async(position) =>
                {
                    if (this.InputTaskCompletionSource?.Task.Status == TaskStatus.WaitingForActivation)
                    {
                        actionModel.IsSelected = true;
                        await this.DismissAsync();
                        this.InputTaskCompletionSource?.SetResult(position);
                    }
                });

                actionModels.Add(actionModel);
                actionModel.Index = actionModels.IndexOf(actionModel);
            });

            DialogActionList.SetValue(BindableLayout.ItemsSourceProperty, actionModels);
        }
Пример #2
0
 public Task <int> SelectActionAsync(
     string title,
     IList <string> actions,
     MaterialSimpleDialogConfiguration configuration = null)
 {
     return(MaterialSimpleDialog.ShowAsync(title, actions, configuration));
 }
Пример #3
0
        private void ConfigureStylesheets()
        {
            var alertDialogConfiguration = new MaterialAlertDialogConfiguration
            {
                BackgroundColor   = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                TitleTextColor    = Color.White,
                TitleFontFamily   = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                MessageTextColor  = Color.White,
                MessageFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                TintColor         = Color.White,
                ButtonFontFamily  = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                CornerRadius      = 8,
                ScrimColor        = Color.FromHex("#011A27").MultiplyAlpha(0.32),
                ButtonAllCaps     = false
            };

            var alertconfirmationDialogConfiguration = new MaterialConfirmationDialogConfiguration
            {
                BackgroundColor  = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                TitleTextColor   = Color.White,
                TitleFontFamily  = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                TintColor        = Color.White,
                ButtonFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                CornerRadius     = 8,
                ScrimColor       = Color.FromHex("#011A27").MultiplyAlpha(0.32),
                ButtonAllCaps    = false
            };

            var alertloadingDialogConfiguration = new MaterialLoadingDialogConfiguration
            {
                BackgroundColor   = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                MessageTextColor  = Color.White,
                TintColor         = Color.White,
                MessageFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                CornerRadius      = 8,
                ScrimColor        = Color.FromHex("#011A27").MultiplyAlpha(0.32)
            };

            var alertsimpleDialogConfiguration = new MaterialSimpleDialogConfiguration
            {
                BackgroundColor = XF.Material.Forms.Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                TitleTextColor  = Color.White,
                TitleFontFamily = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                TintColor       = Color.White,
                TextFontFamily  = XF.Material.Forms.Material.GetResource <OnPlatform <string> >("FontFamily.RobotoRegular"),
                CornerRadius    = 8,
                ScrimColor      = Color.FromHex("#011A27").MultiplyAlpha(0.32),
                TextColor       = Color.White
            };

            MaterialDialog.Instance.SetGlobalStyles(alertDialogConfiguration, alertloadingDialogConfiguration, null, alertsimpleDialogConfiguration, alertconfirmationDialogConfiguration);
        }
        private void CreateActions(List <string> actions, MaterialSimpleDialogConfiguration configuration)
        {
            if (actions == null || actions.Count <= 0)
            {
                throw new ArgumentException("Parameter actions should not be null or empty");
            }

            var actionModels = new List <ActionModel>();

            actions.ForEach(a =>
            {
                var preferredConfig = configuration ?? GlobalConfiguration;
                var actionModel     = new ActionModel
                {
                    Text       = a,
                    TextColor  = preferredConfig?.TextColor ?? Color.FromHex("#DE000000"),
                    FontFamily = preferredConfig != null
                        ? preferredConfig.TextFontFamily
                        : Material.FontFamily.Body1
                };
                actionModel.SelectedCommand = new Command <int>(async(position) =>
                {
                    // Prevent any parrallel execution when clicking fast on the element
                    await SemaphoreSlim.WaitAsync();

                    try
                    {
                        if (InputTaskCompletionSource?.Task.Status != TaskStatus.WaitingForActivation)
                        {
                            return;
                        }

                        actionModel.IsSelected = true;
                        await DismissAsync();
                        InputTaskCompletionSource?.SetResult(position);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    finally
                    {
                        SemaphoreSlim.Release();
                    }
                });

                actionModels.Add(actionModel);
                actionModel.Index = actionModels.IndexOf(actionModel);
            });

            DialogActionList.SetValue(BindableLayout.ItemsSourceProperty, actionModels);
        }
Пример #5
0
        private void Configure(MaterialSimpleDialogConfiguration configuration)
        {
            var preferredConfig = configuration ?? GlobalConfiguration;

            if (preferredConfig != null)
            {
                this.BackgroundColor      = preferredConfig.ScrimColor;
                Container.CornerRadius    = preferredConfig.CornerRadius;
                Container.BackgroundColor = preferredConfig.BackgroundColor;
                DialogTitle.TextColor     = preferredConfig.TitleTextColor;
                DialogTitle.FontFamily    = preferredConfig.TitleFontFamily;
            }
        }
Пример #6
0
        public async Task <int> ShowActionSheet(string title, List <string> actions, Color?backgroundColor = null)
        {
            var materialAlertDialog = new MaterialSimpleDialogConfiguration()
            {
                BackgroundColor = (backgroundColor == null) ? (Color)App.Current.Resources["ThemeBlueColor"] : backgroundColor.Value,
                TextColor       = Color.White,
                TitleTextColor  = Color.White,
                TintColor       = Color.White,
                CornerRadius    = 10
            };
            var result = await MaterialDialog.Instance.SelectActionAsync(title, actions, materialAlertDialog);

            return(result);
        }
        private void Configure(MaterialSimpleDialogConfiguration configuration)
        {
            var preferredConfig = configuration ?? GlobalConfiguration;

            if (preferredConfig == null)
            {
                return;
            }
            this.BackgroundColor      = preferredConfig.ScrimColor;
            Container.CornerRadius    = preferredConfig.CornerRadius;
            Container.BackgroundColor = preferredConfig.BackgroundColor;
            DialogTitle.TextColor     = preferredConfig.TitleTextColor;
            DialogTitle.FontFamily    = preferredConfig.TitleFontFamily;
            Container.Margin          = preferredConfig.Margin == default ? Material.GetResource <Thickness>("Material.Dialog.Margin") : preferredConfig.Margin;
        }
Пример #8
0
 public void SetGlobalStyles(
     MaterialAlertDialogConfiguration dialogConfiguration                    = null,
     MaterialLoadingDialogConfiguration loadingDialogConfiguration           = null,
     MaterialSnackbarConfiguration snackbarConfiguration                     = null,
     MaterialSimpleDialogConfiguration simpleDialogConfiguration             = null,
     MaterialConfirmationDialogConfiguration confirmationDialogConfiguration = null,
     MaterialInputDialogConfiguration inputDialogConfiguration               = null,
     MaterialAlertDialogConfiguration customContentDialogConfiguration       = null)
 {
     MaterialAlertDialog.GlobalConfiguration        = dialogConfiguration;
     MaterialLoadingDialog.GlobalConfiguration      = loadingDialogConfiguration;
     MaterialSnackbar.GlobalConfiguration           = snackbarConfiguration;
     MaterialSimpleDialog.GlobalConfiguration       = simpleDialogConfiguration;
     MaterialConfirmationDialog.GlobalConfiguration = confirmationDialogConfiguration;
     MaterialInputDialog.GlobalConfiguration        = inputDialogConfiguration;
     MaterialDialogFragment.GlobalConfiguration     = customContentDialogConfiguration;
 }
Пример #9
0
        public App()
        {
            InitializeComponent();
            DatabaseUtil = new DatabaseUtil();
            PropertyUtils.SavesProperty("KeySound", "Bip_Bip.mp3");
            Material.Init(Application.Current, "Material.Configuration");
            Material.PlatformConfiguration.ChangeStatusBarColor(Color.FromHex("#651758"));

            var loadingDialogConfiguration = new MaterialLoadingDialogConfiguration()
            {
                BackgroundColor  = Color.White,
                MessageTextColor = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY_VARIANT).MultiplyAlpha(0.8),
                TintColor        = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                CornerRadius     = 8,
                ScrimColor       = Color.FromHex("#232F34").MultiplyAlpha(0.32)
            };
            var inputDialogConfiguration = new MaterialInputDialogConfiguration()
            {
                BackgroundColor  = Color.White,
                TitleTextColor   = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY_VARIANT).MultiplyAlpha(0.8),
                MessageTextColor = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY_VARIANT).MultiplyAlpha(0.8),
                TintColor        = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                CornerRadius     = 8,
                ScrimColor       = Color.FromHex("#232F34").MultiplyAlpha(0.32)
            };
            var simpleDialogConfiguration = new MaterialSimpleDialogConfiguration()
            {
                BackgroundColor = Color.White,
                TitleTextColor  = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY_VARIANT).MultiplyAlpha(0.8),
                TextColor       = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY_VARIANT).MultiplyAlpha(0.8),
                TintColor       = Material.GetResource <Color>(MaterialConstants.Color.PRIMARY),
                CornerRadius    = 8,
                ScrimColor      = Color.FromHex("#232F34").MultiplyAlpha(0.32)
            };

            MaterialDialog.Instance.SetGlobalStyles(loadingDialogConfiguration: loadingDialogConfiguration, inputDialogConfiguration: inputDialogConfiguration, simpleDialogConfiguration: simpleDialogConfiguration);
        }
Пример #10
0
        internal static async Task <int> ShowAsync(string title, IList <string> actions, MaterialSimpleDialogConfiguration configuration = null)
        {
            var dialog = new MaterialSimpleDialog(configuration)
            {
                InputTaskCompletionSource = new TaskCompletionSource <int>()
            };

            dialog.DialogTitle.Text = title;
            dialog.CreateActions(actions.ToList(), configuration);

            await dialog.ShowAsync();

            return(await dialog.InputTaskCompletionSource.Task);
        }
Пример #11
0
 internal MaterialSimpleDialog(MaterialSimpleDialogConfiguration configuration)
 {
     this.InitializeComponent();
     this.Configure(configuration);
 }
 /// <summary>
 /// Sets the global styles for <see cref="MaterialAlertDialog"/>, <see cref="MaterialLoadingDialog"/>,and <see cref="MaterialSnackbar"/>. Parameters can be null.
 /// </summary>
 /// <param name="dialogConfiguration">Global style for <see cref="MaterialAlertDialog"/>.</param>
 /// <param name="loadingDialogConfiguration">Global style for <see cref="MaterialLoadingDialog"/>.</param>
 /// <param name="snackbarConfiguration">Global style for <see cref="MaterialSnackbar"/>.</param>
 public static void SetGlobalStyles(MaterialAlertDialogConfiguration dialogConfiguration, MaterialLoadingDialogConfiguration loadingDialogConfiguration, MaterialSnackbarConfiguration snackbarConfiguration, MaterialSimpleDialogConfiguration simpleDialogConfiguration)
 {
     MaterialAlertDialog.GlobalConfiguration   = dialogConfiguration;
     MaterialLoadingDialog.GlobalConfiguration = loadingDialogConfiguration;
     MaterialSnackbar.GlobalConfiguration      = snackbarConfiguration;
     MaterialSimpleDialog.GlobalConfiguration  = simpleDialogConfiguration;
 }
 /// <summary>
 /// Shows a simple dialog that allows the user to select one of listed actions. Returns the index of the selected action.
 /// </summary>
 /// <param name="actions">The list of actions.</param>
 public static async Task <int> ShowSelectActionAsync(List <string> actions, MaterialSimpleDialogConfiguration configuration = null)
 {
     return(await MaterialSimpleDialog.ShowAsync(null, actions, configuration));
 }