public ViewModelBase(INavigationService navigationService, IEventAggregator eventAggregator, IStoreManager storeManager, IToast toast, IFavoriteService favoriteService, ILoggerFacade logger, ILaunchTwitter twitter, ISSOClient ssoClient, IPushNotifications pushNotifications, IReminderService reminderService, IPageDialogService pageDialogService) { Navigation = navigationService; EventAggregator = eventAggregator; StoreManager = storeManager; Toast = toast; FavoriteService = favoriteService; Logger = logger; SSOClient = ssoClient; PushNotifications = pushNotifications; ReminderService = reminderService; PageDialogService = pageDialogService; LaunchTwitter = twitter; }
public WorkshopDetailsViewModel(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) { EventAggregator.GetEvent <WorkshopSelectedEvent>().Subscribe(WorkshopSelected); }
public FilterSessionsViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IStoreManager storeManager, IToast toast, IFavoriteService favoriteService, ILoggerFacade logger, ILaunchTwitter twitter, ISSOClient ssoClient, IPushNotifications pushNotifications, IReminderService reminderService, IPageDialogService pageDialogService, IUnityContainer container) : base(navigationService, eventAggregator, storeManager, toast, favoriteService, logger, twitter, ssoClient, pushNotifications, reminderService, pageDialogService) { _container = container; _allCategory = new open.conference.app.DataStore.Abstractions.DataObjects.Category { Name = "All", IsEnabled = true, IsFiltered = Settings.ShowAllCategories }; _allCategory.PropertyChanged += (sender, e) => { if (e.PropertyName == "IsFiltered") { SetShowAllCategories(_allCategory.IsFiltered); } }; ToolBarItems.Add(new ToolbarItem { Text = "Done", Command = DoneCommand, Icon = Device.OS != TargetPlatform.iOS ? "toolbar_close.png" : null }); }
public ConferenceInfoViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IStoreManager storeManager, IToast toast, IFavoriteService favoriteService, ILoggerFacade logger, ILaunchTwitter twitter, ISSOClient ssoClient, IPushNotifications pushNotifications, IReminderService reminderService, IPageDialogService pageDialogService, IWiFiConfig wifiConfig) : base(navigationService, eventAggregator, storeManager, toast, favoriteService, logger, twitter, ssoClient, pushNotifications, reminderService, pageDialogService) { _wifiConfig = wifiConfig; }
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; }
public SettingsViewModel(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) { //This will be triggered wen Settings.PropertyChanged += async(sender, e) => { if (e.PropertyName == "Email") { Settings.NeedsSync = true; OnPropertyChanged("LoginText"); OnPropertyChanged("AccountItems"); //if logged in you should go ahead and sync data. if (Settings.IsLoggedIn) { await ExecuteSyncCommandAsync(); } } }; AboutItems.AddRange(new[] { new Models.MenuItem { Name = "Created by MyMie with love for Dev Open Space Leipzig", Command = LaunchBrowserCommand, Parameter = "https://www.mymieapp.com" }, new Models.MenuItem { Name = "Open source on GitHub!", Command = LaunchBrowserCommand, Parameter = "https://github.com/dersia/devopenspaceapp" }, //new Models.MenuItem { Name = "Open Source Notice", Command=LaunchBrowserCommand, Parameter="http://tiny.cc/app-evolve-osn"} }); TechnologyItems.AddRange(new[] { new Models.MenuItem { Name = "Azure Mobile Apps", Command = LaunchBrowserCommand, Parameter = "https://github.com/Azure/azure-mobile-apps-net-client/" }, new Models.MenuItem { Name = "Censored", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Censored" }, new Models.MenuItem { Name = "Calendar Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/TheAlmightyBob/Calendars" }, new Models.MenuItem { Name = "Connectivity Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Connectivity" }, new Models.MenuItem { Name = "Embedded Resource Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/JosephHill/EmbeddedResourcePlugin" }, new Models.MenuItem { Name = "External Maps Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/ExternalMaps" }, new Models.MenuItem { Name = "Image Circles", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/ImageCircle" }, new Models.MenuItem { Name = "Json.NET", Command = LaunchBrowserCommand, Parameter = "https://github.com/JamesNK/Newtonsoft.Json" }, new Models.MenuItem { Name = "LinqToTwitter", Command = LaunchBrowserCommand, Parameter = "https://github.com/JoeMayo/LinqToTwitter" }, new Models.MenuItem { Name = "Messaging Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/cjlotz/Xamarin.Plugins" }, new Models.MenuItem { Name = "Permissions Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Permissions" }, new Models.MenuItem { Name = "Xamarin Evolve App", Command = LaunchBrowserCommand, Parameter = "https://github.com/xamarinhq/app-evolve" }, new Models.MenuItem { Name = "PCL Storage", Command = LaunchBrowserCommand, Parameter = "https://github.com/dsplaisted/PCLStorage" }, new Models.MenuItem { Name = "Pull to Refresh Layout", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Xamarin.Forms-PullToRefreshLayout" }, new Models.MenuItem { Name = "Settings Plugin", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Settings" }, new Models.MenuItem { Name = "Toolkit for Xamarin.Forms", Command = LaunchBrowserCommand, Parameter = "https://github.com/jamesmontemagno/xamarin.forms-toolkit" }, new Models.MenuItem { Name = "Xamarin.Forms", Command = LaunchBrowserCommand, Parameter = "http://xamarin.com/forms" }, new Models.MenuItem { Name = "Prism.Forms", Command = LaunchBrowserCommand, Parameter = "https://github.com/PrismLibrary/Prism" }, }); AboutItems.CollectionChanged += (sender, e) => { AboutListHeightAdjustment = AboutItems.Count; }; AboutListHeightAdjustment = AboutItems.Count; }
public FeedViewModel(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) { NextForceRefresh = DateTime.UtcNow.AddMinutes(45); if (Device.OS == TargetPlatform.Windows || Device.OS == TargetPlatform.WinPhone) { ToolBarItems.Add(new ToolbarItem { Text = "Refresh", Icon = "toolbar_refresh.png", Command = RefreshCommand }); } LoggedIn = Settings.Email; Tweets.CollectionChanged += (sender, e) => { TweetListHeightAdjustment = Tweets.Count; }; Sessions.CollectionChanged += (sender, e) => { SessionListHeightAdjustment = Sessions.Count; }; Workshops.CollectionChanged += (sender, e) => { WorkshopListHeightAdjustment = Workshops.Count; }; }
public TweetImageViewModel(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) { EventAggregator.GetEvent <TweetImageChangedEvent>().Subscribe(ImageChanged); var item = new ToolbarItem { Text = "Done", Command = DelegateCommand.FromAsyncHandler(async() => await Navigation.GoBackAsync()) }; if (Device.OS == TargetPlatform.Android) { item.Icon = "toolbar_close.png"; } ToolBarItems.Add(item); }
public EventDetailsViewModel(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) { Sponsors = new ObservableRangeCollection <Sponsor>(); EventAggregator.GetEvent <EventSelectedEvent>().Subscribe(EventSelected); }
public UWPRootViewModel(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) { SetupPages(); _selectedMenuItem = Pages[0]; }
public SponsorsViewModel(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) { if (Device.OS == TargetPlatform.Windows || Device.OS == TargetPlatform.WinPhone) { ToolBarItems.Add(new ToolbarItem { Text = "Refresh", Icon = "toolbar_refresh.png", Command = ForceRefreshCommand }); } if (Device.OS == TargetPlatform.Android) { Effects.Add("open.conference.app.ListViewSelectionOnTopEffect"); } }
public WorkshopsViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IStoreManager storeManager, IToast toast, IFavoriteService favoriteService, ILoggerFacade logger, ILaunchTwitter twitter, ISSOClient ssoClient, IPushNotifications pushNotifications, IReminderService reminderService, IPageDialogService pageDialogService, IUnityContainer container) : base(navigationService, eventAggregator, storeManager, toast, favoriteService, logger, twitter, ssoClient, pushNotifications, reminderService, pageDialogService) { _container = container; NextForceRefresh = DateTime.UtcNow.AddMinutes(45); ShowFavoritesCategory = Settings.FavoritesOnly; ShowPastCategory = Settings.ShowPastWorkshops; ShowAllCategory = Settings.ShowAllCategories; LoggedIn = Settings.Email; FilteredCategories = Settings.FilteredCategories; Setup(); Workshops.CollectionChanged += (sender, args) => { OnPropertyChanged("Workshops"); }; }
public LoginViewModel(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) { if (!Settings.FirstRun) { Title = "My Account"; var cancel = new ToolbarItem { Text = "Cancel", Command = DelegateCommand.FromAsyncHandler(async() => { if (IsBusy) { return; } await Finish(); Settings.FirstRun = false; }).ObservesCanExecute((arg) => IsBusy) }; if (Device.OS != TargetPlatform.iOS) { cancel.Icon = "toolbar_close.png"; } ToolBarItems.Add(cancel); } }
public ParallaxScrollViewModel(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) { }
public iOSRootViewModel(INavigationService navigationService, IEventAggregator eventAggregator, IStoreManager storeManager, IToast toast, IFavoriteService favoriteService, ILoggerFacade logger, ILaunchTwitter twitter, ISSOClient ssoClient, IPushNotifications pushNotifications, IReminderService reminderService, IPageDialogService pageDialogService, Microsoft.Practices.Unity.IUnityContainer container) : base(navigationService, eventAggregator, storeManager, toast, favoriteService, logger, twitter, ssoClient, pushNotifications, reminderService, pageDialogService) { _container = container; }
public EventsViewModel(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) { Title = "Events"; if (Device.OS == TargetPlatform.Windows || Device.OS == TargetPlatform.WinPhone) { ToolBarItems.Add(new ToolbarItem { Text = "Refresh", Icon = "toolbar_refresh.png", Command = ForceRefreshCommand }); } }
public VenueViewModel(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) { if (Device.OS == TargetPlatform.Android) { ToolBarItems.Add(new ToolbarItem { Order = ToolbarItemOrder.Secondary, Text = "Get Directions", Command = NavigateCommand }); if (CanMakePhoneCall) { ToolBarItems.Add(new ToolbarItem { Order = ToolbarItemOrder.Secondary, Text = "Call Hotel", Command = CallCommand }); } } else if (Device.OS == TargetPlatform.iOS) { ToolBarItems.Add(new ToolbarItem { Text = "More", Icon = "toolbar_overflow.png", Command = DelegateCommand <object> .FromAsyncHandler(async(o) => { string[] items = null; if (!CanMakePhoneCall) { items = new[] { "Get Directions" }; } else { items = new[] { "Get Directions", "Call +49 (341) 4859270" }; } var action = await PageDialogService.DisplayActionSheetAsync("Commundo Tagungshotel", "Cancel", null, items); if (action == items[0]) { NavigateCommand.Execute(null); } else if (items.Length > 1 && action == items[1] && CanMakePhoneCall) { CallCommand.Execute(null); } }) }); } else { ToolBarItems.Add(new ToolbarItem { Text = "Directions", Command = NavigateCommand, Icon = "toolbar_navigate.png" }); if (CanMakePhoneCall) { ToolBarItems.Add(new ToolbarItem { Text = "Call", Command = CallCommand, Icon = "toolbar_call.png" }); } } var position = new Position(Latitude, Longitude); MapSpan = new MapSpan(position, 0.02, 0.02); Pins.Add(new Pin { Type = PinType.Place, Address = LocationTitle, Label = EventTitle, Position = position }); }