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 => { } )); }
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); }
public MainTabViewModel() { PostsVM = Mvx.IocConstruct <PostsViewModel> (); SearchVM = Mvx.IocConstruct <SearchViewModel> (); CameraVM = Mvx.IocConstruct <CameraViewModel> (); FavouritesVM = Mvx.IocConstruct <FavouritesViewModel> (); ProfileVM = Mvx.IocConstruct <CurrentUserProfileViewModel> (); }
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(); }
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; }
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; }
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); }
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); }
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); }
/// <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); }
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); }
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); }
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); }
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); }
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); }
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); // } // }); // } }
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);
public static Task <TViewModel> ShowModalOverlay <TViewModel>(this MvxViewModel @this, TViewModel viewModel) { return(Mvx.Resolve <ModalOverlayNavigation>().ShowModalOverlay(viewModel)); }
public static void DismissCurrentModalOverlay(this MvxViewModel @this) { Mvx.Resolve <ModalOverlayNavigation>().HideModalOverlay(); }
public ViewDataContext(UserControl _view, MvxViewModel _pickable) { View = _view; Data = _pickable; }
public SafeOnClickListener(MvxViewModel viewModel) { _viewModel = viewModel; }
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; }
public Task GoToViewModelPage(MvxViewModel viewModel) { return(null); }
public Task GoBackToPreviousPage(MvxViewModel currentVM) { return(null); }
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); }