예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ImagePickerViewModel" /> class.
        /// </summary>
        /// <param name="client">The bluetooth client connection manager</param>
        /// <param name="platformProperties">Provides platform specific hardware interactions</param>
        public ImagePickerViewModel(IBTClient client, IPlatformProperties platformProperties)
        {
            this.platformProperties             = platformProperties;
            this.client                         = client;
            this.client.NotifyServiceAvailable += (bool status) =>
            {
                this.bluetoothServiceIsStarted = status;
                this.ConnectCommand.RaiseCanExecuteChanged();
            };
            this.client.NotifyCanSendImages += () =>
            {
                this.IsConnected = true;
                this.OnPropertyChanged("IsConnected");
                this.GotoCameraCommand.RaiseCanExecuteChanged();
            };
            this.client.NotifyDisconnected += () =>
            {
                this.IsConnected = false;
                this.OnPropertyChanged("IsConnected");
                this.GotoCameraCommand.RaiseCanExecuteChanged();
            };

            this.platformProperties.NotifyPicked  += this.OnImagePicked;
            this.platformProperties.PickCancelled += this.OnPickCancelled;

            this.CameraSourceAvailable   = platformProperties.IsCameraAvailable;
            this.ConnectCommand          = new DelegateCommandAsync(this.Connect, o => this.bluetoothServiceIsStarted);
            this.GotoCameraCommand       = new DelegateCommandAsync(this.GotoCamera, o => this.isConnecteing || this.IsConnected);
            this.GotoImageLibraryCommand = new DelegateCommandAsync(this.GotoImageLibrary);
            this.PageHeader = "Image picker"; ////this.stringResourceServices.FindNLString("ImageSource");
        }
예제 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BaseViewModel"/> class.
 /// </summary>
 /// <param name="properties">Platform Properties.</param>
 /// <param name="resource">Resources.</param>
 /// <param name="database">Database.</param>
 /// <param name="error">Error Handler.</param>
 /// <param name="navigation">Navigation Handler.</param>
 public BaseViewModel(IPlatformProperties properties, IResourceHelper resource, IDatabase database, IErrorHandler error, INavigationHandler navigation)
 {
     this.Error              = error;
     this.Navigation         = navigation;
     this.Database           = database;
     this.PlatformProperties = properties;
     this.Resources          = resource;
 }
예제 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AppDatabase"/> class.
        /// </summary>
        /// <param name="properties">Platform Properties.</param>
        public AppDatabase(IPlatformProperties properties)
        {
            if (properties == null)
            {
                throw new ArgumentNullException(nameof(properties));
            }

            this.properties = properties;
            this.db         = new LiteDatabase(properties.DatabasePath + ".litedb");
        }
예제 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AppDatabase"/> class.
        /// </summary>
        /// <param name="properties">Platform Properties.</param>
        public AppDatabase(IPlatformProperties properties)
        {
            if (properties == null)
            {
                throw new ArgumentNullException(nameof(properties));
            }

            this.properties = properties;
            this.db         = new LiteDatabase(System.IO.Path.Combine(properties.LocalAppAreaPath, "database.litedb"));
        }
예제 #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SearchVideosViewModel"/> class.
 /// </summary>
 /// <param name="ytClient">YouTube Client.</param>
 /// <param name="properties">Platform Properties.</param>
 /// <param name="resource">Resources.</param>
 /// <param name="database">Database.</param>
 /// <param name="error">Error Handler.</param>
 /// <param name="navigation">Navigation Handler.</param>
 public SearchVideosViewModel(
     YoutubeClient ytClient,
     IPlatformProperties properties,
     IResourceHelper resource,
     IDatabase database,
     IErrorHandler error,
     INavigationHandler navigation)
     : base(properties, resource, database, error, navigation)
 {
     this.ytClient = ytClient ?? throw new ArgumentNullException(nameof(ytClient));
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ImageGalleryViewModel"/> class.
 /// </summary>
 /// <param name="popup">Popup.</param>
 /// <param name="client">API Client.</param>
 /// <param name="properties">Platform Properties.</param>
 /// <param name="resource">Resources.</param>
 /// <param name="database">Database.</param>
 /// <param name="error">Error Handler.</param>
 /// <param name="navigation">Navigation Handler.</param>
 public ImageGalleryViewModel(
     ImageUpload.Mobile.Interfaces.IPopup popup,
     ImageEndpoint client,
     IPlatformProperties properties,
     IResourceHelper resource,
     IDatabase database,
     IErrorHandler error,
     INavigationHandler navigation)
     : base(properties, resource, database, error, navigation)
 {
     this.popup  = popup;
     this.client = client;
     this.Images = new ObservableCollection <IImage>();
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingsViewModel"/> class.
        /// </summary>
        /// <param name="properties">Platform Properties.</param>
        /// <param name="database">Database.</param>
        /// <param name="error">Error Handler.</param>
        /// <param name="navigation">Navigation Handler.</param>
        public SettingsViewModel(IPlatformProperties properties, IDatabase database, IErrorHandler error, INavigationHandler navigation)
            : base(database, error, navigation)
        {
            if (properties == null)
            {
                throw new ArgumentNullException(nameof(properties));
            }

            if (database == null)
            {
                throw new ArgumentNullException(nameof(database));
            }

            this.database    = database;
            this.properties  = properties;
            this.appSettings = database.GetAppSettings();
            this.Title       = "Settings";
        }
예제 #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="VideoCaptionViewModel"/> class.
        /// </summary>
        /// <param name="video">YouTube video.</param>
        /// <param name="captionTrack">Captions.</param>
        /// <param name="properties">Platform Properties.</param>
        /// <param name="resource">Resources.</param>
        /// <param name="database">Database.</param>
        /// <param name="error">Error Handler.</param>
        /// <param name="navigation">Navigation Handler.</param>
        public VideoCaptionViewModel(
            Video video,
            ClosedCaptionTrack captionTrack,
            IPlatformProperties properties,
            IResourceHelper resource,
            IDatabase database,
            IErrorHandler error,
            INavigationHandler navigation)
            : base(properties, resource, database, error, navigation)
        {
            if (captionTrack == null)
            {
                throw new ArgumentNullException(nameof(captionTrack));
            }

            this.Video        = video;
            this.CaptionTrack = captionTrack;
            this.Captions     = captionTrack.Captions.ToList();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="FlyoutPageViewModel"/> class.
        /// </summary>
        /// <param name="page">Flyout Page.</param>
        /// <param name="menuItems">Menu Items.</param>
        /// <param name="footerMenu">Optional button for the footer.</param>
        /// <param name="properties">Platform Properties.</param>
        /// <param name="resource">Resources.</param>
        /// <param name="database">Database.</param>
        /// <param name="error">Error Handler.</param>
        /// <param name="navigation">Navigation Handler.</param>
        public FlyoutPageViewModel(FlyoutPage page, List <MainMenuItem> menuItems, MainMenuItem footerMenu, IPlatformProperties properties, IResourceHelper resource, IDatabase database, IErrorHandler error, INavigationHandler navigation)
            : base(properties, resource, database, error, navigation)
        {
            this.FlyoutPage    = page;
            this.MainMenuItems = menuItems;
            this.FooterMenu    = footerMenu;
            if (!this.MainMenuItems.Any())
            {
                throw new ArgumentException($"{nameof(menuItems)} is empty.");
            }

            this.Title        = "Drastic";
            this.SelectedItem = this.MainMenuItems.First();
        }
예제 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SettingsViewModel"/> class.
 /// </summary>
 /// <param name="properties">Platform Properties.</param>
 /// <param name="resource">Resources.</param>
 /// <param name="database">Database.</param>
 /// <param name="error">Error Handler.</param>
 /// <param name="navigation">Navigation Handler.</param>
 public SettingsViewModel(IPlatformProperties properties, IResourceHelper resource, IDatabase database, IErrorHandler error, INavigationHandler navigation)
     : base(properties, resource, database, error, navigation)
 {
     this.appSettings = this.Database.GetAppSettings();
     this.Title       = "Settings";
 }
예제 #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UploadViewModel"/> class.
 /// </summary>
 /// <param name="popup">Popup.</param>
 /// <param name="client">API Client.</param>
 /// <param name="properties">Platform Properties.</param>
 /// <param name="resource">Resources.</param>
 /// <param name="database">Database.</param>
 /// <param name="error">Error Handler.</param>
 /// <param name="navigation">Navigation Handler.</param>
 public UploadViewModel(ImageUpload.Mobile.Interfaces.IPopup popup, ImageEndpoint client, IPlatformProperties properties, IResourceHelper resource, IDatabase database, IErrorHandler error, INavigationHandler navigation)
     : base(properties, resource, database, error, navigation)
 {
     this.popup  = popup;
     this.client = client;
 }