async void OnDoneClick(object sender, EventArgs e) { if (ContentView.IsAnyRequiredFieldEmpty) { string text = "Please fill out all required fields"; ContentView.Banner.SetInformationText(text, true); return; } ContentView.CancelCrosshairMode(); PointClient.MarkerSource.Clear(); ContentView.Popup.Hide(); UIImage image = ContentView.Content.CameraField.Photo.Image; BucketResponse response1; if (image == null) { // Photo is an optional field. // Create a mock successful response, // if the user hasn't taken a photo response1 = new BucketResponse(); response1.Path = ""; } else { Stream stream = Camera.GetStreamFromImage(image); ContentView.Banner.ShowUploadingImage(); string filename = ContentView.Content.CameraField.ImageName; response1 = await BucketClient.Upload(filename, stream); } if (response1.IsOk) { ContentView.Banner.ShowUploadingData(); Data item = GetData(response1.Path); CartoResponse response2 = await Networking.Post(item); if (response2.IsOk) { ContentView.Banner.Complete(); } else { ContentView.Banner.ShowFailedCartoUpload(); SQLClient.Instance.Insert(item); } } else { ContentView.Banner.ShowFailedAmazonUpload(); Data item = GetData(Camera.LatestImageName); SQLClient.Instance.Insert(item); } ContentView.Content.Clear(); PointClient.QueryPoints(delegate { }); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Window.SetSoftInputMode(SoftInput.AdjustPan); ContentView = new MainView(this); SetContentView(ContentView); LocationClient = new LocationClient(ContentView.MapView); if (IsMarshmallow) { RequestPermissions(Permissions); } else { OnPermissionsGranted(); } PointClient = new PointClient(ContentView.MapView); var bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.icon_pin_red); PointClient.Bitmap = BitmapUtils.CreateBitmapFromAndroidBitmap(bitmap); bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.icon_banner_info); // Scale down, as our original image is too large int size = (int)(20 * ContentView.Density); bitmap = Bitmap.CreateScaledBitmap(bitmap, size, size, false); PointClient.PointListener.LeftImage = BitmapUtils.CreateBitmapFromAndroidBitmap(bitmap); PointClient.QueryPoints(delegate { }); MapListener = new MapClickListener(); List <Data> items = SQLClient.Instance.GetAll(); if (items.Count > 0) { ShowSyncAlert(items.Count); } }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = "Data Collection"; ContentView = new MainView(); View = ContentView; LocationManager = new LocationManager(); LocationClient = new LocationClient(ContentView.MapView); PointClient = new PointClient(ContentView.MapView); PointClient.Bitmap = BitmapUtils.CreateBitmapFromUIImage(UIImage.FromFile("icon_pin_red.png")); MapListener = new MapClickListener(); string text = "QUERYING POINTS..."; ContentView.Banner.SetLoadingText(text, false); List <Data> items = SQLClient.Instance.GetAll(); if (items.Count > 0) { ShowSyncAlert(items.Count); } PointClient.QueryPoints(delegate { InvokeOnMainThread(delegate { ContentView.Banner.Hide(); }); }); var image = UIImage.FromFile("icon_banner_info.png"); image = ImageUtils.Resize(image, 70.0f); PointClient.PointListener.LeftImage = BitmapUtils.CreateBitmapFromUIImage(image); }
async void OnDoneClick(object sender, EventArgs e) { if (ContentView.IsAnyRequiredFieldEmpty) { ContentView.Banner.SetInformationText("Please fill our all required fields", true); return; } ContentView.CancelCrosshairMode(); PointClient.MarkerSource.Clear(); ContentView.Popup.Hide(); ContentView.Banner.SetInformationText("Compressing image...", false); using (var stream = new MemoryStream()) { Bitmap bitmap = ContentView.Content.CameraField.Photo; BucketResponse response1; string filename; if (bitmap == null) { // Photo is an optional field. // Create a mock successful response, // if the user hasn't taken a photo response1 = new BucketResponse(); response1.Path = ""; filename = ""; } else { bitmap.Compress(Bitmap.CompressFormat.Png, Quality, stream); filename = ContentView.Content.CameraField.ImageName; ContentView.Banner.ShowUploadingImage(); response1 = await BucketClient.Upload(filename, stream); } if (response1.IsOk) { ContentView.Banner.ShowUploadingData(); Data item = GetData(response1.Path); CartoResponse response2 = await Networking.Post(item); if (response2.IsOk) { ContentView.Banner.Complete(); } else { ContentView.Banner.ShowFailedCartoUpload(); SQLClient.Instance.Insert(item); } } else { ContentView.Banner.ShowFailedAmazonUpload(); Data item = GetData(filename); SQLClient.Instance.Insert(item); } ContentView.Content.Clear(); PointClient.QueryPoints(delegate { }); } }