public void AddGeofences(GeofenceModel geofenceModel)
        {
            //Set parameters
            geofenceModel.Id = Guid.NewGuid().ToString();
            if (geofenceModel.Conversion == 5) //Expiration value that indicates the geofence should never expire.
            {
                geofenceModel.Timeout = Geofence.GeofenceNeverExpire;
            }
            else
            {
                geofenceModel.Timeout = 10000;
            }

            List <IGeofence> geofenceList = new List <IGeofence>();

            //Geofence Service
            GeofenceService geofenceService  = LocationServices.GetGeofenceService(activity);
            PendingIntent   pendingIntent    = CreatePendingIntent();
            GeofenceBuilder somewhereBuilder = new GeofenceBuilder()
                                               .SetUniqueId(geofenceModel.Id)
                                               .SetValidContinueTime(geofenceModel.Timeout)
                                               .SetRoundArea(geofenceModel.LatLng.Latitude, geofenceModel.LatLng.Longitude, geofenceModel.Radius)
                                               .SetDwellDelayTime(10000)
                                               .SetConversions(geofenceModel.Conversion);;

            //Create geofence request
            geofenceList.Add(somewhereBuilder.Build());
            GeofenceRequest geofenceRequest = new GeofenceRequest.Builder()
                                              .CreateGeofenceList(geofenceList)
                                              .Build();

            //Register geofence
            //Task geoTask = geofenceService.CreateGeofenceList(geofenceRequest, pendingIntent);
            //geoTask.AddOnSuccessListener(new CreateGeoSuccessListener(activity));
            //geoTask.AddOnFailureListener(new CreateGeoFailListener(activity));
        }
 private void InitializeFields()
 {
     geofenceService = LocationServices.GetGeofenceService(this);
     requestList     = new List <Request>();
 }