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; } }); }