public LoginPage() { ViewModel = new BaseViewModel{}; BindingContext = ViewModel; DeviceDetail.UserKey = ""; _database = new TokenDatabase(); var layout = new StackLayout { Padding = 10}; _message = new Label { Text = "", FontSize = Device.GetNamedSize(NamedSize.Default, typeof(Label)), VerticalOptions = LayoutOptions.Center, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, TextColor = Color.Red }; var imgLogoImage = new Image {Source = "ecs.png"}; layout.Children.Add(imgLogoImage); var spacer = new Label { Text = "", FontSize = 15, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, }; var version = new Label { Text = "Version (0.0.0.2)", FontFamily = "HelveticaNeue-Medium", FontSize = 15, FontAttributes = FontAttributes.Bold, VerticalOptions = LayoutOptions.Center, XAlign = TextAlignment.Center, YAlign = TextAlignment.Center, }; layout.Children.Add (spacer); layout.Children.Add(version); _username = new Entry { Placeholder = "Username"}; layout.Children.Add(_username); _password = new Entry { Placeholder = "Password", IsPassword = true }; layout.Children.Add(_password); loginButton = new Button { Text = "Sign In" }; loginButton.Clicked += async (sender, args) => await ValidateUser(_username.Text, _password.Text); layout.Children.Add(loginButton); layout.Children.Add(_message); // here's your activity indicator, it's bound to the IsBusy property of the BaseViewModel // those bindings are on both the visibility property as well as the IsRunning property var activityIndicator = new ActivityIndicator { Color = Color.Black }; activityIndicator.SetBinding(ActivityIndicator.IsVisibleProperty, "IsBusy"); activityIndicator.SetBinding(ActivityIndicator.IsRunningProperty, "IsBusy"); layout.Children.Add(activityIndicator); var placeHolder = new Label { Text = "This software is proprietary and confidential to ECS and by using this software you agree that no part of the document that you would view may be disclosed in any manner to a third party without the prior written consent.", FontSize = Device.GetNamedSize(NamedSize.Default, typeof (Label)), VerticalOptions = LayoutOptions.Center, TextColor = Color.Black }; layout.Children.Add(placeHolder); Content = new ScrollView() { Padding = 10, VerticalOptions = LayoutOptions.Start, Content = layout }; }
public DocumentListPage(string search, string selectedFolderName, string parentName, string updatePath) { ViewModel = new BaseViewModel {}; BindingContext = ViewModel; _updatePath = updatePath; _selectedFolderName = selectedFolderName; Title = string.IsNullOrEmpty(parentName) ? "" : parentName; _documentListView = new DocumentListView(); _documentListView.ItemTapped += async (sender, e) => { try { if (CrossConnectivity.Current.IsConnected == false) { await DisplayAlert("Error", "Please check internet connectivity.", "OK"); return; } if (_documentListView.AcquireTapLock()) { var selectedItem = (Document) e.Item; if (!selectedItem.IsFolder) { int index = selectedItem.Name.LastIndexOf("."); if (index > 0) { var fileExt = selectedItem.Name.Substring(index + 1); if (ImageHelper.SuportedExtension.Contains(fileExt.ToLower())) { await Navigation.PushAsync(new ContentPageXaml(selectedItem, _selectedFolderName, this.Navigation)); } else { await DisplayAlert("Error", "This file type is not suported for preview.", "OK"); } } else { await DisplayAlert("Error", "This file type is not suported for preview.", "OK"); } } else { string tempSelectedFolderName = selectedItem.Name; string path = selectedItem.RelativePath + "/" + selectedItem.Name; await Navigation.PushAsync( new DocumentListPage(path, tempSelectedFolderName, _selectedFolderName, path), true); } _documentListView.ReleaseTapLock(); ((ListView) sender).SelectedItem = null; } } catch (Exception ex) { DisplayAlert("Error", "An exception occurred.", "OK"); } }; _documentListView.Refreshing += async (sender, e) => { try { _documentListView.IsRefreshing = true; lstDocuments = await Task.Run(() => GetUpdatedDocuments(search)); if (lstDocuments.Count > 0) { _documentListView.ItemsSource = null; _documentListView.ItemsSource = lstDocuments; } } catch (Exception ex) { if (ex.Message.ToUpper().Equals(Constants.INVALID_TOKEN_MSG.ToUpper())) { DisplayAlert("Error","Your session has expired,please relogin.", "OK"); Application.Current.MainPage = new LoginPage(); } else { DisplayAlert("Error","An exception occurred.", "OK"); } } finally { _documentListView.EndRefresh(); _documentListView.IsRefreshing = false; } }; Content = GetDocumentPage(_documentListView, ""); Device.BeginInvokeOnMainThread(() => BindList(search)); }