async Task FetchTeamData() { Console.WriteLine("Start"); for (int i = 0; i < 1; i++) { var db = new FirebaseClient(GlobalVariables.firebaseURL); var fbTeams = await db .Child("2017calb") .Child("teamData") .Child("4201") //.Child(matchData.Red[i].ToString()) .OnceSingleAsync <TeamData>(); teams[i] = new TeamData(); teams[i] = fbTeams; Console.WriteLine("Team: " + teams[i].teamNumber); } }
public static async Task ImagePicker(TeamData data, int imageInt) { await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { Console.WriteLine("No Camera"); } else { try { var file = await CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { }); var fileName = data.teamNumber + "_IMG" + imageInt + ".jpg"; var filePath = file.Path; var stream = new MemoryStream(ImageToBinary(filePath)); var storage = new FirebaseStorage(GlobalVariables.firebaseStorageURL); var send = storage.Child(GlobalVariables.regionalPointer) .Child(data.teamNumber.ToString()) .Child(fileName) .PutAsync(stream); var downloadURL = await send; Console.WriteLine("URL: " + downloadURL); var db = new FirebaseClient(GlobalVariables.firebaseURL); FirebaseAccess.saveData(db, "teamData/" + data.teamNumber + "/imageURL", downloadURL); } catch (Exception ex) { Console.WriteLine("Image Upload Image: " + ex); } } }
public async Task addRobotImage(TeamData data) { if (data.imageURL != null) { try { busyIcon.IsRunning = true; busyIcon.IsVisible = true; imageURL = data.imageURL; robotImage.Source = new Uri(imageURL); robotImage.Success += (sender, ea) => { Console.WriteLine("Image source: " + robotImage.Source); busyIcon.IsRunning = false; busyIcon.IsVisible = false; Console.WriteLine(robotImage.Source); robotImage.GestureRecognizers.Add(tap); }; Content = robotImage; } catch (Exception ex) { Console.WriteLine("Error: " + ex.Message); busyIcon.IsRunning = false; busyIcon.IsVisible = false; errorMessageLbl.Text = ex.Message; Content = errorStack; } } else { robotImage.Source = "placeholder_image_placeholder.png"; Content = robotImage; } }
public RobotImageView(TeamData data) { HorizontalOptions = LayoutOptions.FillAndExpand; VerticalOptions = LayoutOptions.FillAndExpand; busyIcon = new ActivityIndicator() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center }; tap = new TapGestureRecognizer(); tap.Tapped += (s, e) => { // Create a gesture recognizer to display the popup image Navigation.PushPopupAsync(new ImagePopupPage(data)); }; robotImage = new CachedImage() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, HeightRequest = 120, //WidthRequest = 120, DownsampleToViewSize = true, Aspect = Aspect.AspectFit, CacheDuration = new TimeSpan(7, 0, 0, 0), }; robotImage.GestureRecognizers.Add(tap); loadingStack = new StackLayout() { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, HeightRequest = 120, WidthRequest = 120, BackgroundColor = Color.Green, Children = { busyIcon, new Label() { Text = "Loading Image...", HorizontalTextAlignment = TextAlignment.Center } } }; /* * placeholderStack = new StackLayout() { * HorizontalOptions = LayoutOptions.CenterAndExpand, * VerticalOptions = LayoutOptions.CenterAndExpand, * HeightRequest = 120, WidthRequest = 120, * BackgroundColor = Color.Green, * * Children = { * busyIcon, * new Label(){ * Text = "[Placeholder Image]", * HorizontalTextAlignment = TextAlignment.Center * } * } * }; * placeholderStack.GestureRecognizers.Add(tap); */ errorMessageLbl = new Label() { HorizontalTextAlignment = TextAlignment.Center, FontSize = GlobalVariables.sizeTiny }; retryBtn = new Button() { Text = "Retry", }; retryBtn.Clicked += (sender, e) => { addRobotImage(data); }; errorStack = new StackLayout() { HorizontalOptions = LayoutOptions.CenterAndExpand, VerticalOptions = LayoutOptions.CenterAndExpand, HeightRequest = 120, WidthRequest = 120, BackgroundColor = Color.Yellow, Children = { new Label() { Text = "Error:", HorizontalTextAlignment = TextAlignment.Center }, errorMessageLbl, retryBtn } }; addRobotImage(data); }
public TeamCardPopupPage(TeamData team) { data = team; var teamNo = new Label() { Text = data.teamNumber.ToString(), FontSize = GlobalVariables.sizeMedium, FontAttributes = FontAttributes.Bold }; var teamNa = new Label() { Text = data.teamName, FontSize = GlobalVariables.sizeMedium }; var teamOPR = new Label() { Text = data.tbaOPR.ToString(), FontSize = 14 }; setPitData(); //setMatchData(); Button editTeamBtn = new Button() { VerticalOptions = LayoutOptions.Fill, HorizontalOptions = LayoutOptions.FillAndExpand, Text = "Edit Info", TextColor = Color.Green, BackgroundColor = Color.Black, FontSize = GlobalVariables.sizeMedium }; editTeamBtn.Clicked += (object sender, EventArgs e) => { Navigation.PushPopupAsync(new TeamCardPopupEditPage(data)); }; Button[] btnArray = { editTeamBtn }; var navigationBtns = new PopupNavigationButtons(true, btnArray); navigationBtns.refreshBtn.Clicked += (sender, e) => { getFirebaseData(); setPitData(); }; var robotImage = new RobotImageView(data); topGrid.Children.Add(robotImage, 0, 1, 0, 2); topGrid.Children.Add(teamNo, 1, 0); topGrid.Children.Add(teamNa, 1, 1); //teamGrid.Children.Add(teamOPR, 0, 2, gridYIndex, gridYIndex++ + 1); //teamGrid.Children.Add(teamOPR, 0, 2, gridYIndex, gridYIndex++ + 1); //topGrid.Children.Add(navigationBtns, 0, 2, gridYIndex, gridYIndex++ + 1); Content = new Frame() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Margin = GlobalVariables.popupMargin, Padding = new Thickness(5), BackgroundColor = Color.Gray, HasShadow = true, Content = new StackLayout() { Children = { topGrid, new ScrollView() { HorizontalOptions = LayoutOptions.StartAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Content = pitDataLayout }, navigationBtns } } }; }
public ImagePopupPage (TeamData tData) { data = tData; robotImg = new RobotImageView(tData); Button setImageDefaultBtn = new Button() { VerticalOptions = LayoutOptions.Fill, HorizontalOptions = LayoutOptions.FillAndExpand, Text = "Set Default", TextColor = Color.Green, BackgroundColor = Color.Black, FontSize = GlobalVariables.sizeMedium }; setImageDefaultBtn.Clicked += (object sender, EventArgs e) => { setDefaultImage(); }; Button retakeImageBtn = new Button() { VerticalOptions = LayoutOptions.Fill, HorizontalOptions = LayoutOptions.FillAndExpand, Text = "Retake", TextColor = Color.Green, BackgroundColor = Color.Black, FontSize = GlobalVariables.sizeMedium }; retakeImageBtn.Clicked += (object sender, EventArgs e) => { OpenImagePicker(); }; btnArray = new Button[] { setImageDefaultBtn, retakeImageBtn }; var navigationBtns = new PopupNavigationButtons(true, btnArray); navigationBtns.refreshBtn.Clicked += (sender, e) => { refreshImages(); robotImg = new RobotImageView(tData); }; Content = new Frame(){ HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Margin = GlobalVariables.popupMargin, Padding = new Thickness(5), BackgroundColor = Color.Gray, HasShadow = true, Content = new StackLayout() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Children = { robotImg, new ScrollView(){ HorizontalOptions = LayoutOptions.FillAndExpand, Orientation = ScrollOrientation.Horizontal, Content = imageStack }, navigationBtns } } }; }
public TeamCardPopupEditPage(TeamData team) { data = team; var teamNo = new Label() { Text = data.teamNumber.ToString(), FontSize = GlobalVariables.sizeMedium, }; var teamNa = new Label() { Text = data.teamName, FontSize = GlobalVariables.sizeMedium }; initalizeData(); Button saveDataBtn = new Button() { VerticalOptions = LayoutOptions.Fill, HorizontalOptions = LayoutOptions.FillAndExpand, Text = "Save", TextColor = Color.Green, BackgroundColor = Color.Black, FontSize = GlobalVariables.sizeMedium }; saveDataBtn.Clicked += (object sender, EventArgs e) => { saveData(); }; Button[] btnArray = { saveDataBtn }; var navigationBtns = new PopupNavigationButtons(false, btnArray); //teamGrid.Children.Add(new RobotImageLayout(data), 0, 1, gridYIndex, gridYIndex + 2); topGrid.Children.Add(teamNo, 1, 0); topGrid.Children.Add(teamNa, 1, 1); // teamGrid.Children.Add(navigationBtns, 0, 2, gridYIndex, gridYIndex++ + 1); CloseWhenBackgroundIsClicked = false; Content = new Frame() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Margin = GlobalVariables.popupMargin, Padding = new Thickness(5), BackgroundColor = Color.Gray, HasShadow = true, Content = new StackLayout() { Children = { topGrid, new ScrollView() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, Content = dataLayout }, navigationBtns } } }; }
async Task takeImage(TeamData data) { await ImageCapture.ImagePicker(data); }
public static async Task TakePhoto(TeamData data, int imageInt) { }