public AboutViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IStoreManager storeManager, IToast toast, IFavoriteService favoriteService, ILoggerFacade logger, ILaunchTwitter twitter, ISSOClient ssoClient, IPushNotifications pushNotifications, IReminderService reminderService, IPageDialogService pageDialogService) : base(navigationService, eventAggregator, storeManager, toast, favoriteService, logger, twitter, ssoClient, pushNotifications, reminderService, pageDialogService) { ToolBarItems.Add(new ToolbarItem { Text = LoginText, Command = LoginCommand }); AboutItems.Clear(); AboutItems.Add(new Models.MenuItem { Name = "About this app", Icon = "icon_venue.png" }); InfoItems.AddRange(new[] { new Models.MenuItem { Name = "Conference Feed", Icon = "menu_feed.png", Pagename = nameof(FeedPage) }, new Models.MenuItem { Name = "Sponsors", Icon = "menu_sponsors.png", Pagename = nameof(SponsorsPage) }, new Models.MenuItem { Name = "Venue", Icon = "menu_venue.png", Pagename = nameof(VenuePage) }, new Models.MenuItem { Name = "Floor Maps", Icon = "menu_plan.png", Pagename = nameof(FloorMapsPage) }, new Models.MenuItem { Name = "Conference Info", Icon = "menu_info.png", Pagename = nameof(ConferenceInformationPage) }, new Models.MenuItem { Name = "Settings", Icon = "menu_settings.png", Pagename = nameof(SettingsPage) } }); accountItem = new Models.MenuItem { Name = "Logged in as:" }; syncItem = new Models.MenuItem { Name = "Last Sync:" }; pushItem = new Models.MenuItem { Name = "Enable push notifications" }; pushItem.Command = DelegateCommand.FromAsyncHandler(async () => { if (PushNotifications.IsRegistered) { UpdateItems(); return; } if (Settings.AttemptedPush) { var response = await PageDialogService.DisplayAlertAsync("Push Notification", "To enable push notifications, please go into Settings, Tap Notifications, and set Allow Notifications to on.", "Settings", "Maybe Later"); if (response) { PushNotifications.OpenSettings(); } } await PushNotifications.RegisterForNotifications(); }); UpdateItems(); AccountItems.Add(accountItem); AccountItems.Add(syncItem); AccountItems.Add(pushItem); //This will be triggered wen Settings.PropertyChanged += (sender, e) => { if (e.PropertyName == "Email" || e.PropertyName == "LastSync" || e.PropertyName == "PushNotificationsEnabled") { UpdateItems(); OnPropertyChanged("AccountItems"); } }; AccountItems.CollectionChanged += (sender, e) => { AccountListHeightAdjustment = AccountItems.Count; }; AccountListHeightAdjustment = AccountItems.Count; _isRegistered = PushNotifications.IsRegistered; }
private void GoToSettings(Models.MenuItem menuItem) { Logger.Log(AppPage.Settings.ToString(), Category.Info, Priority.None); GoToCommand.Execute(new List<string> { nameof(SettingsPage) }); }