private async void OnClickSendRequest(object sender, System.EventArgs eventArgs) { string Tag = "GeoFenceSendRequest"; var geofences = HMSGeofenceData.Geofences; if (geofences.Count == 0) { geoRequestData.Text = "No new request to add."; return; } if (requestList.Count == 0) { geoRequestData.Text = "No PendingIntent to send."; return; } if (requestList.Any(x => x.IsIDExist())) { geoRequestData.Text = "ID already exist, please remove and add it again."; return; } GeofenceRequest.Builder geofenceRequest = new GeofenceRequest.Builder(); geofenceRequest.CreateGeofenceList(geofences); int intTrigger; if (int.TryParse(trigger.Text, out intTrigger)) { geofenceRequest.SetInitConversions(intTrigger); log.Info(Tag, $"Trigger is {intTrigger}"); } else { geofenceRequest.SetInitConversions(5); log.Info(Tag, "Trigger is 5"); } Request tmp = requestList[requestList.Count - 1]; PendingIntent pendingIntent = tmp.pendingIntent; requestList.Add(new Request(pendingIntent, tmp.requestCode, geofences)); var task = geofenceService.CreateGeofenceListAsync(geofenceRequest.Build(), pendingIntent); try { await task; if (task.IsCompleted) { log.Info(Tag, "Add GeoFence succeeded."); } else { log.Error(Tag, $"Add GeoFence failed: {task.Exception.Message}"); } } catch (System.Exception e) { log.Error(Tag, $"Add GeoFence exception: {e.Message}"); } HMSGeofenceData.CreateNewList(); }
private void OnClickCreateGeoFence(object sender, EventArgs e) { HMSGeofenceData data = new HMSGeofenceData(); data.Longitude = double.Parse(FindViewById <EditText>(Resource.Id.setlongitude).Text); data.Latitude = double.Parse(FindViewById <EditText>(Resource.Id.setlatitude).Text); data.Radius = float.Parse(FindViewById <EditText>(Resource.Id.setradius).Text); data.UniqueId = FindViewById <EditText>(Resource.Id.setUniqueId).Text; data.Conversions = int.Parse(FindViewById <EditText>(Resource.Id.setConversions).Text); data.ValidContinueTime = long.Parse(FindViewById <EditText>(Resource.Id.setValidContinueTime).Text); data.DwellDelayTime = int.Parse(FindViewById <EditText>(Resource.Id.setDwellDelayTime).Text); data.NotificationInterval = int.Parse(FindViewById <EditText>(Resource.Id.setNotificationInterval).Text); if (HMSGeofenceData.Geofences == null) { HMSGeofenceData.CreateNewList(); } data.AddToList(); }
private void OnClickRemoveGeoFence(object sender, System.EventArgs e) { HMSGeofenceData.CreateNewList(); }