public PopupBanner(PopupBannerData data) { InitializeComponent(); DataContext = _data = data; SetupIcon(); }
/// <summary> /// Is run after window is loaded and checks connection. /// Displays currently playing track. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// TODO: add ability to refresh player after connection failiure private async void Window_Loaded(object sender, RoutedEventArgs e) { // check if API is usable var apiAccess = await _apiClient.CheckApiAccess(); if (!apiAccess) { // if not, try fallback API (XML) var fallback = new ApiClient(); var fallbackAccess = await _apiClient.CheckApiAccess(); // if this fails, display an error message (banner) if (!fallbackAccess) { var bannerData = new PopupBannerData() { Closable = false, Level = PopupLevel.Error, CloseAction = ClosePopupBanner }; bannerData.Message = "Could not connect to the API"; _messageBanner = new PopupBanner(bannerData); _messageBanner.Height = 40; _messageBanner.VerticalAlignment = VerticalAlignment.Top; _messageBanner.Effect = new DropShadowEffect() { BlurRadius = 20, Direction = -180 }; _messageBanner.Name = "MessageBanner"; _messageBanner.Opacity = 0.0; this.MainContent.Children.Add(_messageBanner); Storyboard sb = this.FindResource("FadeInMessageBanner") as Storyboard; Storyboard.SetTarget(sb, _messageBanner); sb.Begin(); HideSongInfo(); } else { _apiClient = fallback; } } else { UpdateSong(); } _mediaKeyHook = new MediaKeyHook(); _mediaKeyHook.Subscribe(this); }