public MenuBase(MediaEmulator mediaEmulator) { homeScreen = HomeScreen.Instance; CurrentScreen = homeScreen; this.mediaEmulator = mediaEmulator; mediaEmulator.IsEnabledChanged += mediaEmulator_IsEnabledChanged; mediaEmulator.PlayerIsPlayingChanged += ShowPlayerStatus; mediaEmulator.PlayerStatusChanged += ShowPlayerStatus; mediaEmulator.PlayerChanged += mediaEmulator_PlayerChanged; mediaEmulator_PlayerChanged(mediaEmulator.Player); }
public void Navigate(MenuScreen screen) { if (screen == null) { Logger.Error("Navigation to null screen"); return; } if (CurrentScreen == screen) { return; } navigationStack.Push(CurrentScreen); CurrentScreen = screen; }
void currentScreen_ItemClicked(MenuScreen screen, MenuItem item) { switch (item.Action) { case MenuItemAction.GoToScreen: Navigate(item.GoToScreen); break; case MenuItemAction.GoBackScreen: NavigateBack(); break; case MenuItemAction.GoHomeScreen: NavigateHome(); break; } }
void currentScreen_Updated(MenuScreen screen, MenuScreenUpdateEventArgs args) { UpdateScreen(args); }
protected virtual void ScreenNavigatedFrom(MenuScreen screen) { if (screen == null) { return; } screen.OnNavigatedFrom(this); screen.ItemClicked -= currentScreen_ItemClicked; screen.Updated -= currentScreen_Updated; }
protected virtual void ScreenNavigatedTo(MenuScreen screen) { if (screen == null || !screen.OnNavigatedTo(this)) { return; } screen.ItemClicked += currentScreen_ItemClicked; screen.Updated += currentScreen_Updated; }
public static void AddBackButton(this MenuScreen screen, int index = -1) { screen.AddItem(new MenuItem(i => "« " + Localization.Current.Back, MenuItemType.Button, MenuItemAction.GoBackScreen), index); }
protected override void ScreenNavigatedTo(MenuScreen screen) { ShownItemIndex = 0; base.ScreenNavigatedTo(screen); }
void currentScreen_UpdateBody(MenuScreen screen) { UpdateBody(); }
public void NavigateAfterHome(MenuScreen screen) { navigationStack.Clear(); navigationStack.Push(homeScreen); CurrentScreen = screen; }
void currentScreen_UpdateHeader(MenuScreen screen) { UpdateHeader(); }
protected override void ScreenNavigatedTo(MenuScreen screen) { ShownItemIndex = 0; base.ScreenNavigatedTo(screen); }
void currentScreen_Updated(MenuScreen screen, MenuScreenUpdateEventArgs args) { UpdateScreen(args); }
protected MenuScreen CreateContactsScreen() { contactsPerPage = MenuScreen.MaxItemsCount - 3; contactsScreen = new MenuScreen(s => Localization.Current.Contacts); contactsScreen.AddItem(new MenuItem(i => "< " + Localization.Current.PrevItems, i => { offset -= contactsPerPage; SetContactsScreenItems(); }), 0); // TODO navigate contactsScreen.AddItem(new MenuItem(i => Localization.Current.NextItems + " >", i => { offset += contactsPerPage; SetContactsScreenItems(); }), 1); // TODO test, fix and make 1 contactsScreen.AddBackButton(MenuScreen.MaxItemsCount - 1); contactsScreen.NavigatedTo += s => { offset = 0; // TODO don't scroll on navigate back SetContactsScreenItems(); }; return contactsScreen; }
public void NavigateAfterHome(MenuScreen screen) { navigationStack.Clear(); navigationStack.Push(homeScreen); CurrentScreen = screen; }
protected MenuScreen CreatePhoneScreen() { var screen = new MenuScreen(Name); screen.AddItem(new MenuItem(i => Localization.Current.VoiceCall, i => SendCommand(CmdVoiceCall))); screen.AddItem(new MenuItem(i => Localization.Current.Contacts, MenuItemType.Button, MenuItemAction.GoToScreen) { GoToScreen = CreateContactsScreen() }); screen.AddBackButton(); return screen; }
void UpdateNowPlayingScreen(MenuScreen nowPlayingScreen, TrackInfo nowPlaying) { nowPlayingScreen.IsUpdateSuspended = true; nowPlayingScreen.Status = nowPlaying.GetTrackPlaylistPosition(); nowPlayingScreen.ClearItems(); if (NowPlayingTagsSeparatedRows) { if (!StringHelpers.IsNullOrEmpty(nowPlaying.Title)) { nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Title)); } if (!StringHelpers.IsNullOrEmpty(nowPlaying.Artist)) { nowPlayingScreen.AddItem(new MenuItem(i => CharIcons.BordmonitorBull + " " + Localization.Current.Artist + ":")); nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Artist)); } if (!StringHelpers.IsNullOrEmpty(nowPlaying.Album)) { nowPlayingScreen.AddItem(new MenuItem(i => CharIcons.BordmonitorBull + " " + Localization.Current.Album + ":")); nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Album)); } if (!StringHelpers.IsNullOrEmpty(nowPlaying.Genre)) { nowPlayingScreen.AddItem(new MenuItem(i => CharIcons.BordmonitorBull + " " + Localization.Current.Genre + ":")); nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.Genre)); } } else { if (!StringHelpers.IsNullOrEmpty(nowPlaying.Title)) { nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetTitleWithLabel())); } if (!StringHelpers.IsNullOrEmpty(nowPlaying.Artist)) { nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetArtistWithLabel())); } if (!StringHelpers.IsNullOrEmpty(nowPlaying.Album)) { nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetAlbumWithLabel())); } if (!StringHelpers.IsNullOrEmpty(nowPlaying.Genre)) { nowPlayingScreen.AddItem(new MenuItem(i => nowPlaying.GetGenreWithLabel())); } } nowPlayingScreen.AddBackButton(); nowPlayingScreen.IsUpdateSuspended = false; nowPlayingScreen.Refresh(); }