package io.nlopez.smartlocation.geofencing.model; import com.google.android.gms.location.Geofence; /** * Created by mrm on 4/1/15. */ public class GeofenceModel { private String requestId; private double latitude; private double longitude; private float radius; private long expiration; private int transition; private int loiteringDelay; private GeofenceModel(String id, double latitude, double longitude, float radius, long expiration, int transition, int loiteringDelay) { this.requestId = id; this.latitude = latitude; this.longitude = longitude; this.radius = radius; this.expiration = expiration; this.transition = transition; this.loiteringDelay = loiteringDelay; } public String getRequestId() { return requestId; } public double getLatitude() { return latitude; } public double getLongitude() { return longitude; } public float getRadius() { return radius; } public long getExpiration() { return expiration; } public int getTransition() { return transition; } public int getLoiteringDelay() { return loiteringDelay; } public Geofence toGeofence() { return new Geofence.Builder() .setCircularRegion(latitude, longitude, radius) .setExpirationDuration(expiration) .setRequestId(requestId) .setTransitionTypes(transition) .setLoiteringDelay(loiteringDelay) .build(); } public static class Builder { private String requestId; private double latitude; private double longitude; private float radius; private long expiration; private int transition; private int loiteringDelay; public Builder(String id) { this.requestId = id; } public Builder setLatitude(double latitude) { this.latitude = latitude; return this; } public Builder setLongitude(double longitude) { this.longitude = longitude; return this; } public Builder setRadius(float radius) { this.radius = radius; return this; } public Builder setExpiration(long expiration) { this.expiration = expiration; return this; } public Builder setTransition(int transition) { this.transition = transition; return this; } public Builder setLoiteringDelay(int loiteringDelay) { this.loiteringDelay = loiteringDelay; return this; } public GeofenceModel build() { return new GeofenceModel(requestId, latitude, longitude, radius, expiration, transition, loiteringDelay); } } }