public static async Task <ProjectListViewModel> Init(Guid workspaceId) { var vm = new ProjectListViewModel(workspaceId); var store = ServiceContainer.Resolve <IDataStore> (); var settingsStore = ServiceContainer.Resolve <ISettingsStore> (); // Change settings for a better library like // James Montemagno version and define default // values to avoid this code. if (string.IsNullOrEmpty(settingsStore.SortProjectsBy)) { settingsStore.SortProjectsBy = ProjectsCollection.SortProjectsBy.Clients.ToString(); } var savedSort = Enum.Parse(typeof(ProjectsCollection.SortProjectsBy), settingsStore.SortProjectsBy); vm.ProjectList = await ProjectsCollection.Init((ProjectsCollection.SortProjectsBy) savedSort, workspaceId); vm.WorkspaceList = await store.Table <WorkspaceData> ().Where(r => r.DeletedAt == null) .OrderBy(r => r.Name).ToListAsync(); vm.CurrentWorkspaceIndex = vm.WorkspaceList.IndexOf(p => p.Id == workspaceId); // Search stream Observable.FromEventPattern <string> (ev => vm.onSearch += ev, ev => vm.onSearch -= ev) .Throttle(TimeSpan.FromMilliseconds(300)) .DistinctUntilChanged() .Subscribe (p => ServiceContainer.Resolve <IPlatformUtils> ().DispatchOnUIThread(() => { vm.ProjectList.ProjectNameFilter = p.EventArgs; }), ex => ServiceContainer.Resolve <ILogger> ().Error("Search", ex, null)); return(vm); }
public static async Task<ProjectListViewModel> Init (Guid workspaceId) { var vm = new ProjectListViewModel (workspaceId); var store = ServiceContainer.Resolve<IDataStore> (); var settingsStore = ServiceContainer.Resolve<ISettingsStore> (); // Change settings for a better library like // James Montemagno version and define default // values to avoid this code. if (string.IsNullOrEmpty (settingsStore.SortProjectsBy)) { settingsStore.SortProjectsBy = ProjectsCollection.SortProjectsBy.Clients.ToString (); } var savedSort = Enum.Parse (typeof (ProjectsCollection.SortProjectsBy), settingsStore.SortProjectsBy); vm.ProjectList = await ProjectsCollection.Init ((ProjectsCollection.SortProjectsBy)savedSort, workspaceId); vm.WorkspaceList = await store.Table<WorkspaceData> ().Where (r => r.DeletedAt == null) .OrderBy (r => r.Name).ToListAsync (); vm.CurrentWorkspaceIndex = vm.WorkspaceList.IndexOf (p => p.Id == workspaceId); // Search stream Observable.FromEventPattern<string> (ev => vm.onSearch += ev, ev => vm.onSearch -= ev) .Throttle (TimeSpan.FromMilliseconds (300)) .DistinctUntilChanged () .Subscribe (p => ServiceContainer.Resolve<IPlatformUtils> ().DispatchOnUIThread (() => { vm.ProjectList.ProjectNameFilter = p.EventArgs; }), ex => ServiceContainer.Resolve<ILogger> ().Error ("Search", ex, null)); return vm; }
public async override void OnViewCreated (View view, Bundle savedInstanceState) { base.OnViewCreated (view, savedInstanceState); if (viewModel == null) { var timeEntryList = await ProjectListActivity.GetIntentTimeEntryData (Activity.Intent); if (timeEntryList.Count == 0) { Activity.Finish (); return; } viewModel = new ProjectListViewModel (timeEntryList); } var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList); adapter.HandleProjectSelection = OnItemSelected; recyclerView.SetAdapter (adapter); viewModel.OnIsLoadingChanged += OnModelLoaded; await viewModel.Init (); }
public async override void OnViewCreated (View view, Bundle savedInstanceState) { base.OnViewCreated (view, savedInstanceState); viewModel = new ProjectListViewModel (TimeEntryIds); await viewModel.Init (); var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList); adapter.HandleProjectSelection = OnItemSelected; recyclerView.SetAdapter (adapter); OnDataLoaded (null, null); }
public async override void OnViewCreated (View view, Bundle savedInstanceState) { base.OnViewCreated (view, savedInstanceState); viewModel = await ProjectListViewModel.Init (WorkspaceId); var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList); adapter.HandleItemSelection = OnItemSelected; recyclerView.SetAdapter (adapter); ConfigureUIViews (); CreateWorkspaceTabs (); }
public async override void OnViewCreated (View view, Bundle savedInstanceState) { base.OnViewCreated (view, savedInstanceState); viewModel = new ProjectListViewModel (TimeEntryIds); await viewModel.Init (); var adapter = new ProjectListAdapter (recyclerView, viewModel.ProjectList); adapter.HandleProjectSelection = OnItemSelected; recyclerView.SetAdapter (adapter); EnsureCorrectState (); // Create tabs if (viewModel.ProjectList.Workspaces.Count > 1) { int i = 0; foreach (var ws in viewModel.ProjectList.Workspaces) { var tab = tabLayout.NewTab().SetText (ws.Data.Name); tabLayout.AddTab (tab); if (ws.Data.Id == viewModel.TimeEntryList[0].WorkspaceId) { viewModel.ProjectList.CurrentWorkspaceIndex = i; tab.Select(); } i++; } } }
public ProjectListFragment (IList<TimeEntryData> timeEntryList) { viewModel = new ProjectListViewModel (timeEntryList); }