Exemplo n.º 1
0
        public static Task RequestModel<TRequest>(this MvxViewModel viewModel, GitHubRequest<TRequest> request, bool forceDataRefresh, Action<GitHubResponse<TRequest>> update) where TRequest : new()
        {
            if (forceDataRefresh)
            {
                request.CheckIfModified = false;
                request.RequestFromCache = false;
            }

            var application = Mvx.Resolve<IApplicationService>();
            var uiThrad = Mvx.Resolve<IUIThreadService>();

			return Task.Run(async () =>
            {
				var result = await application.Client.ExecuteAsync(request).ConfigureAwait(false);
                uiThrad.MarshalOnUIThread(() => update(result));

                if (result.WasCached)
                {
                    request.RequestFromCache = false;

					Task.Run(async () =>
                    {
                        try
                        {
							var r = await application.Client.ExecuteAsync(request).ConfigureAwait(false);
                            uiThrad.MarshalOnUIThread(() => update(r));
                        }
						catch (NotModifiedException)
						{
							System.Diagnostics.Debug.WriteLine("Not modified: " + request.Url);
						}
                    }).FireAndForget();
                }
            });
		}
        public static IDisposable SubscribeSearchText <TParameter>(this MvxViewModel <TParameter> viewModel, string propertyName, IMvxAsyncCommand searchCommand, Func <bool> canExecute)
        {
            var propertyChanged = Observable.FromEventPattern <PropertyChangedEventHandler, PropertyChangedEventArgs>(
                h => viewModel.PropertyChanged += h, h => viewModel.PropertyChanged -= h);

            var autoCompleteSuggest = propertyChanged
                                      .Where(property => property.EventArgs.PropertyName.Equals(propertyName))
                                      .Select(property =>
                                              property.Sender.GetType().GetProperty(propertyName).GetValue(property.Sender) as string)
                                      .Where(_ => canExecute())
                                      .Throttle(TimeSpan.FromMilliseconds(250))
                                      .DistinctUntilChanged();

            IObservable <Unit> GetSuggestions() =>
            Observable.FromAsync(() => searchCommand.ExecuteAsync());

            var results = from searchText in autoCompleteSuggest
                          from suggestResult in GetSuggestions()
                          .TakeUntil(autoCompleteSuggest)
                          select suggestResult;

            return(results.ObserveOn(SynchronizationContext.Current).Subscribe(
                       unit => { },
                       exception => { }
                       ));
        }
Exemplo n.º 3
0
        public static async Task RequestModel <TRequest>(this MvxViewModel viewModel, GitHubRequest <TRequest> request, Action <GitHubResponse <TRequest> > update) where TRequest : new()
        {
            var application = Mvx.Resolve <IApplicationService>();
            var result      = await application.Client.ExecuteAsync(request);

            update(result);
        }
Exemplo n.º 4
0
 public MainTabViewModel()
 {
     PostsVM      = Mvx.IocConstruct <PostsViewModel> ();
     SearchVM     = Mvx.IocConstruct <SearchViewModel> ();
     CameraVM     = Mvx.IocConstruct <CameraViewModel> ();
     FavouritesVM = Mvx.IocConstruct <FavouritesViewModel> ();
     ProfileVM    = Mvx.IocConstruct <CurrentUserProfileViewModel> ();
 }
Exemplo n.º 5
0
        public override void SetupBindingWithViewModel(MvxViewModel viewModel)
        {
            this.ViewModel = viewModel;

            var set = this.CreateBindingSet <StateCellView, StateCellViewModel>();

            set.Bind(ItemNameLabel).To(vm => vm.ItemName);
            set.Bind(ItemStateLabel).To(vm => vm.State);
            set.Apply();
        }
        public override void SetupBindingWithViewModel(MvxViewModel viewModel)
        {
            this.ViewModel = viewModel;

            var set = this.CreateBindingSet <ColorCellView, ColorCellViewModel>();

            set.Bind(this.WidgetLabel).To(vm => vm.ItemName);
            //set.Bind(this.WidgetColor).For(v => v.SetBackgroundColor).To(vm => vm.Color);
            set.Apply();
        }
Exemplo n.º 7
0
        public PTZControlViewModel(MvxViewModel parentViewModel, IOnvifServiceAggregator onvifServiceAggregator, IMvxMessenger messenger, IMvxJsonConverter jsonConverter) : base(messenger, jsonConverter)
        {
            if (parentViewModel == null)
            {
                throw new ArgumentNullException(nameof(parentViewModel));
            }

            _onvifServiceAggregator = onvifServiceAggregator;
            _parentViewModel        = parentViewModel;
        }
Exemplo n.º 8
0
        public override void SetupBindingWithViewModel(MvxViewModel viewModel)
        {
            this.ViewModel = viewModel;

            var set = this.CreateBindingSet <SwitchCellView, SwitchCellViewModel>();

            set.Bind(this.WidgetSwitch).To(vm => vm.On);
            set.Bind(this).For(v => v.SwitchStateChanged).To(vm => vm.SwitchStateChangedCommand);
            set.Bind(this.WidgetSwitch).For("Title").To(vm => vm.ItemName);
            set.Apply();
        }
 public CustomActionBarDrawerToggle(Activity activity, MvxViewModel viewModel,
                                    Android.Support.V4.Widget.DrawerLayout drawerLayout,
                                    Toolbar toolbar,
                                    int openDrawerContentDescRes,
                                    int closeDrawerContentDescRes)
     : base(activity,
            drawerLayout,
            toolbar,
            openDrawerContentDescRes,
            closeDrawerContentDescRes)
 {
     ViewModel = viewModel;
 }
Exemplo n.º 10
0
        public static async Task RequestModel <TRequest>(this MvxViewModel viewModel, GitHubRequest <TRequest> request, bool forceDataRefresh, Action <GitHubResponse <TRequest> > update) where TRequest : new()
        {
            if (forceDataRefresh)
            {
                request.CheckIfModified  = false;
                request.RequestFromCache = false;
            }

            var application = Mvx.Resolve <IApplicationService>();
            var result      = await application.Client.ExecuteAsync(request);

            update(result);
        }
Exemplo n.º 11
0
        public bool Show(MvxViewModelRequest request, Bundle bundle, Type fragmentType, MvxFragmentAttribute fragmentAttribute)
        {
            var fragmentView = (IMvxFragmentView)Activator.CreateInstance(fragmentType);

            fragmentView.LoadViewModelFrom(request);
            currentViewModel = fragmentView.DataContext as MvxViewModel;

            var ft = SupportFragmentManager.BeginTransaction();

            ft.Replace(Resource.Id.main, fragmentView.ToFragment());
            ft.Commit();

            return(true);
        }
Exemplo n.º 12
0
        private UIViewController CreateSingleTab(string tabName, MvxViewModel tabViewModel)
        {
            var viewController = this.CreateViewControllerFor(tabViewModel) as UIViewController;

            tabViewModel.Start();

            viewController.Title      = tabName;
            viewController.TabBarItem = new UITabBarItem()
            {
                Title = tabName
            };

            return(viewController);
        }
Exemplo n.º 13
0
        /// <summary>
        /// Navigates the application to specified page
        /// And sets the initial view model for that page if provided
        /// </summary>
        /// <param name="page">The page to go to</param>
        /// <param name="viewModel">The view model to set initially on page (if provided)</param>
        public void GoToPage(ApplicationPage page, MvxViewModel viewModel = null)
        {
            // Change current page to specified one
            CurrentPage = page;

            // If view model wasnt provided
            if (viewModel == null)
            {
                // Create new one for new page
                viewModel = page.GetViewModel(mViewModelProvider);
            }

            // Change the page on application
            mUIManager.GoToViewModelPage(viewModel);
        }
Exemplo n.º 14
0
        private UIViewController CreateSingleTab(string tabName, string imgPath, MvxViewModel tabViewModel)
        {
            //viewcontroller aanmaken adhv viewmodel
            var viewController =
                this.CreateViewControllerFor(tabViewModel) as UIViewController;

            tabViewModel.Start();

            //titel instellen op naam tabblad
            viewController.Title      = tabName;
            viewController.TabBarItem = new UITabBarItem()
            {
                Title = tabName, Image = UIImage.FromFile(imgPath)
            };

            return(viewController);
        }
Exemplo n.º 15
0
        private UIViewController CreateSingleTab(string tabName, MvxViewModel tabViewModel)
        {
            var viewController =
                this.CreateViewControllerFor(tabViewModel) as UIViewController;

            tabViewModel.Start();
            UIImage Icon = UIImage.FromBundle(tabName + ".png");

            Icon = ResizeUIImage(Icon, 25, 25);
            viewController.Title      = tabName;
            viewController.TabBarItem = new UITabBarItem()
            {
                Title = tabName, Image = Icon
            };

            return(viewController);
        }
Exemplo n.º 16
0
        public static void CreateMore <T>(this MvxViewModel viewModel, BitbucketSharp.Models.V2.Collection <T> response,
                                          Action <Action> assignMore, Action <IEnumerable <T> > newDataAction)
        {
            if (string.IsNullOrEmpty(response.Next))
            {
                assignMore(null);
                return;
            }

            Action task = () =>
            {
                var moreResponse = Mvx.Resolve <IApplicationService>().Client.Request2 <BitbucketSharp.Models.V2.Collection <T> >(response.Next);
                viewModel.CreateMore(moreResponse, assignMore, newDataAction);
                newDataAction(moreResponse.Values);
            };

            assignMore(task);
        }
Exemplo n.º 17
0
        public static void CreateMore <T>(this MvxViewModel viewModel, GitHubResponse <T> response,
                                          Action <Action> assignMore, Action <T> newDataAction) where T : new()
        {
            if (response.More == null)
            {
                assignMore(null);
                return;
            }

            Action task = () =>
            {
                var moreResponse = Mvx.Resolve <IApplicationService>().Client.ExecuteAsync(response.More).Result;
                viewModel.CreateMore(moreResponse, assignMore, newDataAction);
                newDataAction(moreResponse.Data);
            };

            assignMore(task);
        }
Exemplo n.º 18
0
        private UIViewController CreateSingleTab(string tabName, MvxViewModel tabViewModel, UIImage image)
        {
            //viewcontroller aanmaken adhv viewmodel
            var viewController =
                this.CreateViewControllerFor(tabViewModel) as UIViewController;

            tabViewModel.Start();

            //titel instellen op naam tablad

            viewController.Title = tabName;
            //UIImage Image = Image.Size(10)
            viewController.TabBarItem = new UITabBarItem()
            {
                Title = tabName, Image = image
            };


            return(viewController);
        }
Exemplo n.º 19
0
        public static Task RequestModel <TRequest>(this MvxViewModel viewModel, Func <TRequest> request, Action <TRequest> update) where TRequest : new()
        {
            var uiThread = Mvx.Resolve <IUIThreadService>();

            return(Task.Run(() =>
            {
                var data = request();
                uiThread.MarshalOnUIThread(() => update(data));
            }));


//
//            if (forceDataRefresh)
//            {
//                request.CheckIfModified = false;
//                request.RequestFromCache = false;
//            }
//
//			var response = await Mvx.Resolve<IApplicationService>().Client.ExecuteAsync(request);
//            update(response);
//
//            if (response.WasCached)
//            {
//				Task.Run(async () => {
//                    try
//                    {
//                        request.RequestFromCache = false;
//						var r = await Mvx.Resolve<IApplicationService>().Client.ExecuteAsync(request);
//						update(r);
//                    }
//                    catch (NotModifiedException)
//                    {
//                        Console.WriteLine("Not modified: " + request.Url);
//                    }
//					catch (Exception)
//                    {
//                        Console.WriteLine("SHIT! " + request.Url);
//                    }
//                });
//            }
        }
Exemplo n.º 20
0
        public static async Task RequestModel <TRequest>(this MvxViewModel viewModel, GitHubRequest <TRequest> request, bool forceDataRefresh, Action <GitHubResponse <TRequest> > update) where TRequest : new()
        {
            if (forceDataRefresh)
            {
                request.CheckIfModified  = false;
                request.RequestFromCache = false;
            }

            var application = Mvx.Resolve <IApplicationService>();
            var uiThrad     = Mvx.Resolve <IUIThreadService>();

            var result = await application.Client.ExecuteAsync(request).ConfigureAwait(false);

            uiThrad.MarshalOnUIThread(() => update(result));

            if (result.WasCached)
            {
                request.RequestFromCache = false;
                var uncachedTask = application.Client.ExecuteAsync(request);
                uncachedTask.FireAndForget();
                uncachedTask.ContinueWith(t => uiThrad.MarshalOnUIThread(() => update(t.Result)), TaskContinuationOptions.OnlyOnRanToCompletion);
            }
        }
 public abstract void SetupBindingWithViewModel(MvxViewModel viewModel);
Exemplo n.º 22
0
 public static Task <TViewModel> ShowModalOverlay <TViewModel>(this MvxViewModel @this, TViewModel viewModel)
 {
     return(Mvx.Resolve <ModalOverlayNavigation>().ShowModalOverlay(viewModel));
 }
Exemplo n.º 23
0
 public static void DismissCurrentModalOverlay(this MvxViewModel @this)
 {
     Mvx.Resolve <ModalOverlayNavigation>().HideModalOverlay();
 }
 public abstract void SetupBindingWithViewModel(MvxViewModel viewModel);
Exemplo n.º 25
0
 public ViewDataContext(UserControl _view, MvxViewModel _pickable)
 {
     View = _view;
     Data = _pickable;
 }
Exemplo n.º 26
0
 public SafeOnClickListener(MvxViewModel viewModel)
 {
     _viewModel = viewModel;
 }
Exemplo n.º 27
0
        public static async Task RequestModel <TRequest>(this MvxViewModel viewModel, Func <TRequest> request, Action <TRequest> update) where TRequest : new()
        {
            var data = await Task.Run(() => request());

            update(data);
        }
 public MaterialsListViewAdapter(List <Tuple <Material, int> > materials, Context context, EstimateViewModel estimatedViewModel)
 {
     this.ViewModel = estimatedViewModel;
     this.materials = materials;
     this.context   = context;
 }
Exemplo n.º 29
0
 public Task GoToViewModelPage(MvxViewModel viewModel)
 {
     return(null);
 }
Exemplo n.º 30
0
 public Task GoBackToPreviousPage(MvxViewModel currentVM)
 {
     return(null);
 }
Exemplo n.º 31
0
        private UIViewController CreateTab(int index, string title, string imageName, MvxViewModel vm)
        {
            var screen = this.CreateViewControllerFor(vm) as UIViewController;

            screen.TabBarItem = new UITabBarItem(title, UIImage.FromBundle(imageName), index);

            return(screen);
        }