Esempio n. 1
0
        public void OptionNames()
        {
            var s     = new ToastOptions();
            var names = s.GetOptionNames();

            Assert.AreEqual(propertyNames.Count, names.Count);
        }
Esempio n. 2
0
        public void Add(ToastType type, string message, string title, Action <ToastOptions> configure)
        {
            if (message.IsEmpty())
            {
                return;
            }

            message = message.Trimmed();
            title   = title.Trimmed();

            var options = new ToastOptions(type, Configuration);

            configure?.Invoke(options);

            var toast = new Toast(title, message, options);

            ToastLock.EnterWriteLock();
            try
            {
                if (Configuration.PreventDuplicates && ToastAlreadyPresent(toast))
                {
                    return;
                }
                toast.OnClose += Remove;
                Toasts.Add(toast);
            }
            finally
            {
                ToastLock.ExitWriteLock();
            }

            OnToastsUpdated?.Invoke();
        }
Esempio n. 3
0
        public ToastPageViewModel()
        {
            PageTitle = "Hello, World!";

            var moonOptions = new ToastOptions
            {
                ToastAction = async() =>
                {
                    PageTitle = "Hello, Mercury!";
                    await Task.Delay(1500);

                    PageTitle = "Hello, World!";
                },
                OnBeforeDisplayingToast = toastView =>
                {
                    toastView.Opacity = 0;
                    return(toastView.FadeTo(1, 500, Easing.Linear));
                },
                OnBeforeHidingToast = toastView => toastView.FadeTo(0, 500, Easing.Linear),
                Duration            = 10000
            };

            MoonCommand =
                new AsyncCommand <string>(title => ToastControl.DisplayToast(title, moonOptions, m_moonLayout));
            VenusCommand =
                new AsyncCommand <string>(title => ToastControl.DisplayToast(title, VenusOptions(), VenusLayout()));
            MarsCommand  = new AsyncCommand <string>(title => ToastControl.DisplayToast(title));
            PlutoCommand =
                new AsyncCommand <string>(title => ToastControl.DisplayToast(title, m_plutoOptions, m_plutoLayout));
        }
Esempio n. 4
0
 internal Toast(string title, string message, ToastOptions options)
 {
     Title   = title;
     Message = message;
     State   = new State(options);
     Timer   = new Timer(TimerElapsed, null, Timeout.Infinite, Timeout.Infinite);
 }
        private void OnToast(ref SeString message, ref ToastOptions options, ref bool isHandled)
        {
            try {
                if (isHandled)
                {
                    return;
                }

                if (Config.Hide)
                {
                    if (Config.ShowInCombat && Service.Condition[ConditionFlag.InCombat])
                    {
                        return;
                    }
                }
                else
                {
                    var messageStr = message.ToString();
                    if (Config.Exceptions.All(x => !messageStr.Contains(x)))
                    {
                        return;
                    }
                }

                isHandled = true;
            } catch (Exception ex) {
                SimpleLog.Error(ex);
            }
        }
Esempio n. 6
0
        private IntPtr HandleNormalToastDetour(IntPtr manager, IntPtr text, int layer, byte isTop, byte isFast, int logMessageId)
        {
            if (text == IntPtr.Zero)
            {
                return(IntPtr.Zero);
            }

            // call events
            var isHandled = false;
            var str       = this.ParseString(text);
            var options   = new ToastOptions
            {
                Position = (ToastPosition)isTop,
                Speed    = (ToastSpeed)isFast,
            };

            this.Toast?.Invoke(ref str, ref options, ref isHandled);

            // do nothing if handled
            if (isHandled)
            {
                return(IntPtr.Zero);
            }

            var terminated = Terminate(str.Encode());

            unsafe
            {
                fixed(byte *message = terminated)
                {
                    return(this.showNormalToastHook.Original(manager, (IntPtr)message, layer, (byte)options.Position, (byte)options.Speed, logMessageId));
                }
            }
        }
        public void ConstructOptions()
        {
#if __ANDROID__
            var to = new ToastOptions(Platform.Activity);
#else
            var to = new ToastOptions();
#endif
            Assert.NotNull(to);
        }
Esempio n. 8
0
        public ToastService(IServiceProvider serviceProvider, ToastOptions options)
        {
            options.ThrowIfNull();

            _serviceProvider       = serviceProvider;
            _activeToasts          = new List <ToastState>();
            _modelComponentMapping = options.Mapping;

            ToastPosition = options.Position;
        }
Esempio n. 9
0
        public Toast(string title, string message, ToastOptions options)
        {
            Title   = title;
            Message = message;
            Options = options;

            AnimationId = $"toaster-{Guid.NewGuid()}";

            State = ToastState.Init;
            Timer = new TransitionTimer(TimerElapsed);
        }
Esempio n. 10
0
        public void SingularMaxHeightCustom()
        {
            var propertyIndex = 3;
            var expectedValue = 75;

            var src = new ToastOptions {
                SingularMaxHeight = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 11
0
        public void HeightCustom()
        {
            var propertyIndex = 1;
            var expectedValue = 50;

            var src = new ToastOptions {
                Height = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 12
0
 private ToastOptions ConfigureOptions(ToastOptions options)
 {
     options.MaximumOpacity         = _maximumOpacity;
     options.EscapeHtml             = _escapeHtml;
     options.RequireInteraction     = _requireInteraction;
     options.ShowProgressBar        = _showProgressBar;
     options.ShowCloseIcon          = _showCloseIcon;
     options.ShowTransitionDuration = _showTransitionDuration;
     options.VisibleStateDuration   = _visibleStateDuration;
     options.HideTransitionDuration = _hideTransitionDuration;
     return(options);
 }
Esempio n. 13
0
        public void IconWidthCustom()
        {
            var propertyIndex = 5;
            var expectedValue = 20;

            var src = new ToastOptions {
                IconWidth = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 14
0
        public void FontSizeCustom()
        {
            var propertyIndex = 4;
            var expectedValue = 50.75;

            var src = new ToastOptions {
                FontSize = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, CreatePercentageValue(expectedValue));
        }
Esempio n. 15
0
        public void WarnColorCustom()
        {
            var propertyIndex = 15;
            var expectedValue = CreateColor();

            var src = new ToastOptions {
                WarnColor = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 16
0
        public void HideCustom()
        {
            var propertyIndex = 0;
            var expectedValue = true;

            var src = new ToastOptions {
                Hide = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 17
0
        public void SuccessBackgroundColorCustom()
        {
            var propertyIndex = 12;
            var expectedValue = CreateColor();

            var src = new ToastOptions {
                SuccessBackgroundColor = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 18
0
        public void TextPaddingCustom()
        {
            var propertyIndex = 7;
            var expectedValue = 10;

            var src = new ToastOptions {
                TextPadding = expectedValue
            };
            var so = PopulateOptions(src);

            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 19
0
        public static IServiceCollection AddBlazoredToast(this IServiceCollection services, Action <ToastOptions> toastOptionsAction)
        {
            if (toastOptionsAction == null)
            {
                throw new ArgumentNullException(nameof(toastOptionsAction));
            }

            var toastOptions = new ToastOptions();

            toastOptionsAction(toastOptions);

            return(AddBlazoredToast(services, toastOptions));
        }
Esempio n. 20
0
        public void EmptyContructor()
        {
            var src = new ToastOptions
            {
            };

            var so = PopulateOptions(src);

            Assert.AreEqual(0, so.Count);

            so = PopulateOptions(src, true);
            Assert.AreEqual(16, so.Count);
        }
Esempio n. 21
0
        public void HeightDefault()
        {
            var propertyIndex = 1;
            var expectedValue = ToastOptions.Defaults.Height;
            var src           = new ToastOptions {
            };

            var so = PopulateOptions(src);

            AssertEmptyProperty(so, propertyIndex);

            so = PopulateOptions(src, true);
            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 22
0
        public void WarnBackgroundColorDefault()
        {
            var propertyIndex = 14;
            var expectedValue = ToastOptions.Defaults.WarnBackgroundColor;
            var src           = new ToastOptions {
            };

            var so = PopulateOptions(src);

            AssertEmptyProperty(so, propertyIndex);

            so = PopulateOptions(src, true);
            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 23
0
        public void FontSizeDefault()
        {
            var propertyIndex = 4;
            var expectedValue = ToastOptions.Defaults.FontSize;
            var src           = new ToastOptions {
            };

            var so = PopulateOptions(src);

            AssertEmptyProperty(so, propertyIndex);

            so = PopulateOptions(src, true);
            AssertPopulatedProperty(so, propertyIndex, CreatePercentageValue(expectedValue));
        }
Esempio n. 24
0
        public void SeparatorColorDefault()
        {
            var propertyIndex = 6;
            var expectedValue = ToastOptions.Defaults.SeparatorColor;
            var src           = new ToastOptions {
            };

            var so = PopulateOptions(src);

            AssertEmptyProperty(so, propertyIndex);

            so = PopulateOptions(src, true);
            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
Esempio n. 25
0
        public void TextPaddingDefault()
        {
            var propertyIndex = 7;
            var expectedValue = ToastOptions.Defaults.TextPadding;
            var src           = new ToastOptions {
            };

            var so = PopulateOptions(src);

            AssertEmptyProperty(so, propertyIndex);

            so = PopulateOptions(src, true);
            AssertPopulatedProperty(so, propertyIndex, expectedValue);
        }
        public void NotificationManagerInit()
        {
            Assert.Throws <InvalidOperationException>(() => NotificationManager.Instance);
#if __ANDROID__
            var to = new ToastOptions(Platform.Activity);
#else
            var to = new ToastOptions();
#endif
            NotificationManager.Init(to);

            Assert.NotNull(NotificationManager.Instance);
            Assert.NotNull(NotificationManager.History);
            Assert.NotNull(NotificationManager.GetNotificationEventSource());
        }
        public static Task DisplayToastAsync(this Page page, ToastOptions toastOptions)
        {
            var snackBar  = new SnackBar();
            var arguments = toastOptions ?? new ToastOptions();
            var options   = new SnackBarOptions
            {
                MessageOptions  = arguments.MessageOptions,
                Duration        = arguments.Duration,
                BackgroundColor = arguments.BackgroundColor,
                IsRtl           = arguments.IsRtl
            };

            snackBar.Show(page, options);
            return(options.Result.Task);
        }
Esempio n. 28
0
 public static async Task ShowErrorSnackBarAsync(this Page page, string message, SnackbarDuration duration = SnackbarDuration.Short)
 {
     var messageOptions = new MessageOptions
     {
         Foreground = Color.White,
         Message    = message
     };
     var options = new ToastOptions
     {
         MessageOptions  = messageOptions,
         Duration        = duration == SnackbarDuration.Long ? TimeSpan.FromMilliseconds(5000) : TimeSpan.FromMilliseconds(2500),
         BackgroundColor = Color.FromHex("e22f2f"),
         IsRtl           = false,
     };
     await page.DisplayToastAsync(options);
 }
Esempio n. 29
0
        private void ShowNormal(byte[] bytes, ToastOptions options = null)
        {
            options ??= new ToastOptions();

            var manager = this.dalamud.Framework.Gui.GetUIModule();

            // terminate the string
            var terminated = Terminate(bytes);

            unsafe
            {
                fixed(byte *ptr = terminated)
                {
                    this.HandleNormalToastDetour(manager, (IntPtr)ptr, 5, (byte)options.Position, (byte)options.Speed, 0);
                }
            }
        }
        async void DisplayToastAnchoredClicked(object?sender, EventArgs args)
        {
            var messageOptions = new MessageOptions
            {
                Message    = "Anchored toast",
                Foreground = Color.Black
            };

            var options = new ToastOptions
            {
                MessageOptions  = messageOptions,
                Duration        = TimeSpan.FromMilliseconds(5000),
                BackgroundColor = Color.LightBlue
            };

            await Anchor1.DisplayToastAsync(options);
        }