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();
 }