public MyMusicViewModel(IEventAggregator eventAggregatorInstance, IMessagingService messagingServiceInstance, IShellViewModel shellViewModelInstance) : base(eventAggregatorInstance, messagingServiceInstance, shellViewModelInstance)
        {
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Artist".GetLocalized()), new ParameterOverride("symbol", "\uED53"), new ParameterOverride("startId", "0/My Music/Artists"), new ParameterOverride("searchId", "0/My Music/Search/TrackArtists")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Album".GetLocalized()), new ParameterOverride("symbol", "\uE958"), new ParameterOverride("startId", "0/My Music/Albums"), new ParameterOverride("searchId", "0/My Music/Search/Albums")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Genre".GetLocalized()), new ParameterOverride("symbol", "\uE74C"), new ParameterOverride("startId", "0/My Music/Genres"), new ParameterOverride("searchId", "")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Composer".GetLocalized()), new ParameterOverride("symbol", "\uE13D"), new ParameterOverride("startId", "0/My Music/Composers"), new ParameterOverride("searchId", "0/My Music/Search/Composers")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Folder".GetLocalized()), new ParameterOverride("symbol", "\uED43"), new ParameterOverride("startId", "0/My Music/ByFolder"), new ParameterOverride("searchId", "")
            }));

            InitializeCommand.Execute(null);
        }
Beispiel #2
0
        private async Task PerformSearch(string param)
        {
            SearchPhrase = param ?? "";
            var allItems = ((param ?? "") == "") ? new List <Product>() : (await DataManager.ProductDataSource.SearchProductsAsync(param));

            if (allItems?.Any() ?? false)
            {
                PivotItems.Clear();
                PivotItems.Add(new SearchGroupDisplayItem("", "All", allItems, true, ItemClickedCommand));
                SelectedPivot = PivotItems[0];
                foreach (string categoryId in allItems.Select(item => item.Category).Distinct())
                {
                    string categoryName = await DataManager.CategoryDataSource.GetCategoryNameAsync(categoryId);

                    PivotItems.Add(new SearchGroupDisplayItem(categoryId, categoryName, allItems.Where(item => item.Category == categoryId).ToList(), false, ItemClickedCommand));
                }
            }
            else
            {
                PivotItems.Clear();
                SelectedPivot = null;
            }
            IsInitializing = false;
            OnPropertyChanged("IsInitializing");
            OnPropertyChanged("PivotItems");
            OnPropertyChanged("PageName");
            OnPropertyChanged("HasResults");
            OnPropertyChanged("SearchPhrase");
            OnPropertyChanged("NoResultsText");
            OnPropertyChanged("SearchPhrase");
        }
Beispiel #3
0
        public async Task LoadSubreddits()
        {
            var subreddits = await _offlineService.RetrieveOrderedThings("pivotsubreddits");

            PivotItems.Add(new SubredditSelectorViewModel(_baconProvider));

            if (subreddits == null || subreddits.Count() == 0)
            {
                subreddits = new List <TypedThing <Subreddit> > {
                    new TypedThing <Subreddit>(SubredditInfo.GetFrontPageThing())
                }
            }
            ;

            foreach (var sub in subreddits)
            {
                if (sub.Data is Subreddit && ((Subreddit)sub.Data).Id != null)
                {
                    var message = new SelectSubredditMessage();
                    message.Subreddit = new TypedThing <Subreddit>(sub);
                    ChangeSubreddit(message, false);
                }
            }

            Messenger.Default.Send <SelectIndexMessage>(
                new SelectIndexMessage
            {
                TypeContext = typeof(MainPageViewModel),
                Index       = 0
            }
                );
        }
Beispiel #4
0
        private void OnCloseSubreddit(CloseSubredditMessage message)
        {
            string heading = message.Heading;

            if (message.Subreddit != null)
            {
                heading = message.Subreddit.Data.DisplayName;
            }

            if (!String.IsNullOrEmpty(heading))
            {
                var match = PivotItems.FirstOrDefault(vmb => vmb is TemporaryRedditViewModel && (vmb as TemporaryRedditViewModel).RedditViewModel.Heading == heading);
                if (match != null)
                {
                    PivotItems.Remove(match);
                    RaisePropertyChanged("PivotItems");
                }
                else
                {
                    match = PivotItems.FirstOrDefault(vmb => vmb is RedditViewModel && (vmb as RedditViewModel).Heading == heading);
                    if (match != null)
                    {
                        var subreddit = (match as RedditViewModel).SelectedSubreddit;
                        PivotItems.Remove(match);
                        RaisePropertyChanged("PivotItems");
                        _subreddits.Remove(subreddit);
                        RaisePropertyChanged("Subreddits");
                    }
                }
            }
        }
        public TuneInViewModel(IEventAggregator eventAggregatorInstance, IMessagingService messagingServiceInstance, IShellViewModel shellViewModelInstance) : base(eventAggregatorInstance, messagingServiceInstance, shellViewModelInstance)
        {
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Favorites".GetLocalized()), new ParameterOverride("symbol", "\uEB51"), new ParameterOverride("startId", "0/RadioTime/Favorites"), new ParameterOverride("searchId", "0/RadioTime/Search")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "RadioLocal".GetLocalized()), new ParameterOverride("symbol", "\uE80F"), new ParameterOverride("startId", "0/RadioTime/LocalRadio"), new ParameterOverride("searchId", "0/RadioTime/Search")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "RadioMusic".GetLocalized()), new ParameterOverride("symbol", "\uE189"), new ParameterOverride("startId", "0/RadioTime/CategoryMusic"), new ParameterOverride("searchId", "0/RadioTime/Search")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "RadioTalk".GetLocalized()), new ParameterOverride("symbol", "\uE125"), new ParameterOverride("startId", "0/RadioTime/CategoryTalk"), new ParameterOverride("searchId", "0/RadioTime/Search")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "RadioSport".GetLocalized()), new ParameterOverride("symbol", "\uE805"), new ParameterOverride("startId", "0/RadioTime/CategorySports"), new ParameterOverride("searchId", "0/RadioTime/Search")
            }));

            InitializeCommand.Execute(null);
        }
Beispiel #6
0
        private void OnReorderSubreddit(ReorderSubredditMessage message)
        {
            var redditVMs = PivotItems.Select(piv => piv is RedditViewModel ? piv as RedditViewModel : null);

            for (int i = Subreddits.Count - 1; i >= 0; i--)
            {
                var pivot = redditVMs.FirstOrDefault(rvm => rvm.Heading == Subreddits[i].Data.DisplayName);
                if (pivot != null)
                {
                    PivotItems.Remove(pivot);
                    PivotItems.Insert(0, pivot);
                }
            }
        }
Beispiel #7
0
        public FavoritesViewModel(IEventAggregator eventAggregatorInstance, IMessagingService messagingServiceInstance, IShellViewModel shellViewModelInstance) : base(eventAggregatorInstance, messagingServiceInstance, shellViewModelInstance)
        {
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "MyFavorites".GetLocalized()), new ParameterOverride("symbol", "\uEB51"), new ParameterOverride("startId", "0/Favorites/MyFavorites"), new ParameterOverride("searchId", "")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "RecentlyPlayed".GetLocalized()), new ParameterOverride("symbol", "\uE823"), new ParameterOverride("startId", "0/Favorites/RecentlyPlayed"), new ParameterOverride("searchId", "")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "MostPlayed".GetLocalized()), new ParameterOverride("symbol", "\uE8D6"), new ParameterOverride("startId", "0/Favorites/MostPlayed"), new ParameterOverride("searchId", "")
            }));

            InitializeCommand.Execute(null);
        }
Beispiel #8
0
        public PlaylistsViewModel(IEventAggregator eventAggregatorInstance, IMessagingService messagingServiceInstance, IShellViewModel shellViewModelInstance) : base(eventAggregatorInstance, messagingServiceInstance, shellViewModelInstance)
        {
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "MyPlaylists".GetLocalized()), new ParameterOverride("symbol", "\uE90B"), new ParameterOverride("startId", "0/Playlists/MyPlaylists"), new ParameterOverride("searchId", "")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Shuffles".GetLocalized()), new ParameterOverride("symbol", "\uE14B"), new ParameterOverride("startId", "0/Playlists/Shuffles"), new ParameterOverride("searchId", "")
            }));
            PivotItems.Add(PrismUnityApplication.Current.Container.Resolve <PivotItemViewModel>(new ResolverOverride[]
            {
                new ParameterOverride("label", "Imported".GetLocalized()), new ParameterOverride("symbol", "\uE118"), new ParameterOverride("startId", "0/Playlists/Imported"), new ParameterOverride("searchId", "")
            }));

            InitializeCommand.Execute(null);
        }
Beispiel #9
0
        public void loadNext()
        {
            if (PivotItems.Count == 0)
            {
                PivotItems.Add(SigfoodApiService.getDataOfDate());

                selectedDay = PivotItems.First();
            }

            while (PivotItems.Count - PivotItems.IndexOf(selectedDay) - 1 < 3 && PivotItems.Last().nextDate != null)
            {
                PivotItems.Add(SigfoodApiService.getDataOfDate(PivotItems.Last().nextDate));
            }
            while (PivotItems.IndexOf(selectedDay) < 3 && PivotItems.First().prevDate != null)
            {
                PivotItems.Insert(0, SigfoodApiService.getDataOfDate(PivotItems.First().prevDate));
            }
        }
Beispiel #10
0
        public override void OnApplyTemplate()
        {
            _gridContainer     = Template.FindName("PART_GlobalContainer", this) as Grid;
            _navigationBar     = Template.FindName("PART_NavigationBar", this) as ItemsControl;
            _elementsContainer = Template.FindName("PART_ElementsContainer", this) as ItemsControl;
            _footerContainer   = Template.FindName("PART_FooterContainer", this) as ItemsControl;

            // The context buttons must have the same view model of their content pivot.
            PivotItems.ForEach((pivot) =>
            {
                var context = pivot.DataContext;
                pivot.ContextButtons.ForEach((contextButton) =>
                {
                    contextButton.DataContext = context;
                });
            });

            this.Loaded += PivotContainerS_Loaded;

            base.OnApplyTemplate();
        }
Beispiel #11
0
        public void NavigateToElement(object parameter)
        {
            var pivotItem = parameter as PivotItem;

            if (pivotItem == null)
            {
                return;
            }

            SelectedPivotItem = pivotItem;
            _currentIndex     = PivotItems.IndexOf(pivotItem);
            if (PivotChangedEvent != null)
            {
                PivotChangedEvent(
                    this,
                    new PivotIndexChangedEventArgs()
                {
                    PivotIndex = _currentIndex
                });
            }
        }
Beispiel #12
0
        private void OnSelectTemporarySubreddit(SelectTemporaryRedditMessage message)
        {
            int  indexToPosition;
            bool foundExisting = FindSubredditMessageIndex(message, out indexToPosition);

            if (!foundExisting)
            {
                var newReddit = new TemporaryRedditViewModel(_baconProvider);
                newReddit.RedditViewModel.DetachSubredditMessage();
                newReddit.RedditViewModel.AssignSubreddit(message);
                if (PivotItems.Count > 0)
                {
                    PivotItems.Insert(PivotItems.Count - 1, newReddit);
                }
                else
                {
                    PivotItems.Add(newReddit);
                }
                indexToPosition = PivotItems.Count - 1;
            }
        }
Beispiel #13
0
        private void ChangeSubreddit(SelectSubredditMessage message, bool fireSubredditsChanged = true)
        {
            int  indexToPosition;
            bool foundExisting = FindSubredditMessageIndex(message, out indexToPosition);

            if (!foundExisting)
            {
                var newReddit = new RedditViewModel(_baconProvider);
                newReddit.DetachSubredditMessage();
                newReddit.AssignSubreddit(message);
                if (PivotItems.Count > 0)
                {
                    PivotItems.Insert(PivotItems.Count - 1, newReddit);
                }
                else
                {
                    PivotItems.Add(newReddit);
                }
                _subreddits.Add(message.Subreddit);
                RaisePropertyChanged("PivotItems");
                indexToPosition = PivotItems.Count - 2;
            }

            if (fireSubredditsChanged)
            {
                RaisePropertyChanged("Subreddits");

                Messenger.Default.Send <SelectIndexMessage>(
                    new SelectIndexMessage
                {
                    TypeContext = typeof(MainPageViewModel),
                    Index       = indexToPosition
                }
                    );
            }
        }
Beispiel #14
0
 private async Task AddPivot(int i)
 {
     PivotItems.Add(new BudgetItemViewModel(_current.AddMonths(-i), await GetModel(-i)));
 }