public Main(string campusName) { InitializeComponent(); client = new HttpClient(); client.MaxResponseContentBufferSize = 256000; mCurrentCampus = campusName; Title = campusName; Application.Current.Properties["map"] = map; Refresh(); var scroll = new ScrollView(); string font; switch (Device.RuntimePlatform) { case "iOS": font = "AppleSDGothicNeo-UltraLight"; break; case "Android": font = "Droid Sans Mono"; break; default: font = "Comic Sans MS"; break; } // Assigns title of page to building that is to be going to //display user prefernece info Label cName = new Label { Text = "Campus: N/A", TextColor = Color.White, BackgroundColor = Color.FromRgb(104, 151, 243), FontFamily = font }; Label r = new Label { Text = "Role: N/A", TextColor = Color.White, BackgroundColor = Color.FromRgb(104, 151, 243), FontFamily = font }; Label b = new Label { Text = "Building: N/A", TextColor = Color.White, BackgroundColor = Color.FromRgb(104, 151, 243), FontFamily = font }; l = new Label { Text = "Lot: N/A", TextColor = Color.White, BackgroundColor = Color.FromRgb(104, 151, 243), FontFamily = font }; // All function buttons var nd = new Button() { Text = "New Destination", //TextColor = Color.Red, Font = Font.SystemFontOfSize(NamedSize.Large), FontFamily = font }; nd.Clicked += newdes; var go = new Button() { Text = "Go!", TextColor = Color.Red, Font = Font.SystemFontOfSize(NamedSize.Large), FontFamily = font }; go.IsEnabled = false; var call = new Button() { Text = "Call", Font = Font.SystemFontOfSize(NamedSize.Large), FontFamily = font }; call.Clicked += callnum; // display the user's preference that stored in their phone if (Application.Current.Properties.ContainsKey(campusName + "campus")) { cName.Text = "Campus: " + Application.Current.Properties[campusName + "campus"]; } if (Application.Current.Properties.ContainsKey(campusName + "role")) { r.Text = "Role: " + Application.Current.Properties[campusName + "role"]; } if (Application.Current.Properties.ContainsKey(campusName + "building")) { b.Text = "Building: " + Application.Current.Properties[campusName + "building"]; } // Go button is not clickable if their no user's preference stored if ((Application.Current.Properties.ContainsKey(campusName + "building")) && (Application.Current.Properties.ContainsKey(campusName + "role")) && (Application.Current.Properties.ContainsKey(campusName + "campus")) && (campusName == (string)Application.Current.Properties[campusName + "campus"])) { go.IsEnabled = true; } else { go.IsEnabled = false; } // all elements var stack = new StackLayout { Spacing = 0, VerticalOptions = LayoutOptions.FillAndExpand }; stack.Children.Add(cName); stack.Children.Add(r); stack.Children.Add(b); stack.Children.Add(l); stack.Children.Add(map); stack.Children.Add(nd); stack.Children.Add(go); stack.Children.Add(call); scroll.Content = stack; Content = scroll; NavigationPage.SetBackButtonTitle(this, ""); // Geofencing AwaitSingle(StartGeoLocation()); CrossGeolocator.Current.PositionChanged += (o, args) => { if ((map.CheckInGeofences(args.Position)) && (onCampus == false)) { Device.BeginInvokeOnMainThread(() => { mCurrentCampus = map.InWhichGeofences(args.Position); DisplayAlert("Welcome to " + mCurrentCampus + "!", "We hope you find your way around!", "Okay"); DependencyService.Get <ITextToSpeech>().Speak("Welcome to " + mCurrentCampus); onCampus = true; Application.Current.Properties["notification"] = 1; }); } else if ((map.CheckInGeofences(args.Position) == false) && (onCampus == true)) { Device.BeginInvokeOnMainThread(() => { DisplayAlert("Now leaving " + mCurrentCampus, "Did you mean to do that?", "Maybe?"); onCampus = false; mCurrentCampus = ""; Application.Current.Properties["notification"] = 0; }); } }; // Preference button ToolbarItems.Add(new ToolbarItem("Preference", "preference.png", () => { Navigation.PushAsync(new EnterUserInfoPage(this.Title)); })); map.SpanToCampus(campusName); go.Clicked += async(sender, e) => { map.NavigateToLot(this.Title, mLotOrder[mLotToGo]); }; }
async void OnClicked(object sender, EventArgs args) { map.NavigateToLot(mCampusName, mLotOrder[0]); }