1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.example.android.wearable.geofencing;
18 
19 import com.google.android.gms.location.Geofence;
20 
21 /**
22  * A single Geofence object, defined by its center and radius.
23  */
24 public class SimpleGeofence {
25 
26     // Instance variables
27     private final String mId;
28     private final double mLatitude;
29     private final double mLongitude;
30     private final float mRadius;
31     private long mExpirationDuration;
32     private int mTransitionType;
33 
34     /**
35      * @param geofenceId The Geofence's request ID.
36      * @param latitude Latitude of the Geofence's center in degrees.
37      * @param longitude Longitude of the Geofence's center in degrees.
38      * @param radius Radius of the geofence circle in meters.
39      * @param expiration Geofence expiration duration.
40      * @param transition Type of Geofence transition.
41      */
SimpleGeofence(String geofenceId, double latitude, double longitude, float radius, long expiration, int transition)42     public SimpleGeofence(String geofenceId, double latitude, double longitude, float radius,
43             long expiration, int transition) {
44         // Set the instance fields from the constructor.
45         this.mId = geofenceId;
46         this.mLatitude = latitude;
47         this.mLongitude = longitude;
48         this.mRadius = radius;
49         this.mExpirationDuration = expiration;
50         this.mTransitionType = transition;
51     }
52 
53     // Instance field getters.
getId()54     public String getId() {
55         return mId;
56     }
getLatitude()57     public double getLatitude() {
58         return mLatitude;
59     }
getLongitude()60     public double getLongitude() {
61         return mLongitude;
62     }
getRadius()63     public float getRadius() {
64         return mRadius;
65     }
getExpirationDuration()66     public long getExpirationDuration() {
67         return mExpirationDuration;
68     }
getTransitionType()69     public int getTransitionType() {
70         return mTransitionType;
71     }
72 
73     /**
74      * Creates a Location Services Geofence object from a SimpleGeofence.
75      * @return A Geofence object.
76      */
toGeofence()77     public Geofence toGeofence() {
78         // Build a new Geofence object.
79         return new Geofence.Builder()
80                 .setRequestId(mId)
81                 .setTransitionTypes(mTransitionType)
82                 .setCircularRegion(mLatitude, mLongitude, mRadius)
83                 .setExpirationDuration(mExpirationDuration)
84                 .build();
85     }
86 
87 }
88