public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // stylyze FreTrial button
            GuiNotificationButtonBottom.Hidden = true;
            CustomButtonStyles.ApplyStyleInfoButton(GuiNotificationButtonBottom, "", NSImage.ImageNamed("iconStatusModerate"));

            View.WantsLayer = true;
            View.LayerContentsRedrawPolicy = NSViewLayerContentsRedrawPolicy.OnSetNeedsDisplay;

            View.Layer.AddSublayer(__animationLayer);

            View.SetConnectButtonRect(GuiConnectButtonImage);
            View.SetPauseButton(GuiPauseButton);
            View.SetPauseLeftTimeTextField(GuiPauseLeftTimeText);

            View.OnButtonPressed            += View_OnButtonPressed;
            View.OnButtonPausePressed       += View_OnButtonPausePressed;
            View.OnPauseTimeLeftTextPressed += View_OnPauseTimeLeftTextPressed;

            UpdateWiFiInfoGuiData();
            UpdateGuiData();
            InitializeInformationPopover();

            __MainViewModel.AppState.OnAccountStatusChanged += UpdateSessionStatusInfo;
            UpdateSessionStatusInfo(__MainViewModel.AppState.AccountStatus);

            GuiWiFiButton.Activated += GuiWiFiButton_Activated;

            View.OnApperianceChanged += () =>
            {
                UpdateGuiData();
            };
        }
        private void UpdateSessionStatusInfo(AccountStatus sessionStatus)
        {
            InvokeOnMainThread(() =>
            {
                try
                {
                    GuiNotificationButtonBottom.Hidden = true;
                    if (sessionStatus == null)
                    {
                        return;
                    }

                    if (!sessionStatus.IsActive)
                    {
                        string part1 = LocalizedStrings.Instance.LocalizedString("Label_SubscriptionExpired");
                        if (sessionStatus.IsOnFreeTrial)
                        {
                            part1 = LocalizedStrings.Instance.LocalizedString("Label_FreeTrialExpired");
                        }
                        string part2 = LocalizedStrings.Instance.LocalizedString("Label_AccountExpiredUpgradeNow");

                        string title = part1 + " " + part2;
                        CustomButtonStyles.ApplyStyleInfoButton(GuiNotificationButtonBottom, title, NSImage.ImageNamed("iconStatusBad"));

                        NSMutableAttributedString attrTitle = new NSMutableAttributedString(title);

                        NSStringAttributes stringAttributes0 = new NSStringAttributes();
                        stringAttributes0.Font            = GuiNotificationButtonBottom.TitleFont;
                        stringAttributes0.ForegroundColor = GuiNotificationButtonBottom.TitleForegroundColor;
                        stringAttributes0.ParagraphStyle  = new NSMutableParagraphStyle {
                            Alignment = NSTextAlignment.Center
                        };

                        NSStringAttributes stringAttributes1 = new NSStringAttributes();
                        stringAttributes1.ForegroundColor    = NSColor.FromRgb(59, 159, 230);

                        attrTitle.AddAttributes(stringAttributes0, new NSRange(0, title.Length));
                        attrTitle.AddAttributes(stringAttributes1, new NSRange(title.Length - part2.Length, part2.Length));

                        GuiNotificationButtonBottom.TitleTextAttributedString = attrTitle;

                        GuiNotificationButtonBottom.Hidden = false;
                    }
                    else
                    {
                        if (sessionStatus.WillAutoRebill)
                        {
                            return;
                        }

                        if ((sessionStatus.ActiveUtil - DateTime.Now).TotalMilliseconds < TimeSpan.FromDays(4).TotalMilliseconds)
                        {
                            int daysLeft = (int)(sessionStatus.ActiveUtil - DateTime.Now).TotalDays;
                            if (daysLeft < 0)
                            {
                                daysLeft = 0;
                            }

                            string notificationString;

                            if (daysLeft == 0)
                            {
                                notificationString = LocalizedStrings.Instance.LocalizedString("Label_AccountDaysLeft_LastDay");
                                if (sessionStatus.IsOnFreeTrial)
                                {
                                    notificationString = LocalizedStrings.Instance.LocalizedString("Label_FreeTrialDaysLeft_LastDay");
                                }
                            }
                            else if (daysLeft == 1)
                            {
                                notificationString = LocalizedStrings.Instance.LocalizedString("Label_AccountDaysLeft_OneDay");
                                if (sessionStatus.IsOnFreeTrial)
                                {
                                    notificationString = LocalizedStrings.Instance.LocalizedString("Label_FreeTrialDaysLeft_OneDay");
                                }
                            }
                            else
                            {
                                notificationString = LocalizedStrings.Instance.LocalizedString("Label_AccountDaysLeft_PARAMETRIZED");
                                if (sessionStatus.IsOnFreeTrial)
                                {
                                    notificationString = LocalizedStrings.Instance.LocalizedString("Label_FreeTrialDaysLeft_PARAMETRIZED");
                                }

                                notificationString = string.Format(notificationString, daysLeft);
                            }
                            CustomButtonStyles.ApplyStyleInfoButton(GuiNotificationButtonBottom, notificationString, NSImage.ImageNamed("iconStatusModerate"));

                            GuiNotificationButtonBottom.Hidden = false;
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logging.Info(string.Format("{0}", ex));
                    GuiNotificationButtonBottom.Hidden = true;
                }
            });
        }