summaryrefslogtreecommitdiffstats
path: root/location
diff options
context:
space:
mode:
authorDante Russo <drusso@codeaurora.org>2014-04-10 15:11:45 -0700
committerSteve Kondik <shade@chemlab.org>2015-10-16 19:35:53 -0700
commitd8729538a3dd1e3947278b9b048d254e66ca05d3 (patch)
tree4429b0e60e1b0d9de8fa682a07a46fad22aefa4e /location
parentd25fef5357480af5bee11ed00baa7e2b27616f18 (diff)
downloadframeworks_base-d8729538a3dd1e3947278b9b048d254e66ca05d3.zip
frameworks_base-d8729538a3dd1e3947278b9b048d254e66ca05d3.tar.gz
frameworks_base-d8729538a3dd1e3947278b9b048d254e66ca05d3.tar.bz2
geofence: Low power geofence HW implementation
HW implemntation overwrites the SW implementation Change-Id: Id738f2808691c35e5507e1d557bc5351456953ad
Diffstat (limited to 'location')
-rw-r--r--location/java/android/location/GeoFenceParams.aidl23
-rw-r--r--location/java/android/location/GeoFenceParams.java132
-rw-r--r--location/java/android/location/IGeoFenceListener.aidl30
-rw-r--r--location/java/android/location/IGeoFencer.aidl33
4 files changed, 218 insertions, 0 deletions
diff --git a/location/java/android/location/GeoFenceParams.aidl b/location/java/android/location/GeoFenceParams.aidl
new file mode 100644
index 0000000..3e9be4c
--- /dev/null
+++ b/location/java/android/location/GeoFenceParams.aidl
@@ -0,0 +1,23 @@
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+ *
+ * Not a Contribution, Apache license notifications and license are retained
+ * for attribution purposes only.
+ *
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.location;
+
+parcelable GeoFenceParams;
diff --git a/location/java/android/location/GeoFenceParams.java b/location/java/android/location/GeoFenceParams.java
new file mode 100644
index 0000000..aa6e245
--- /dev/null
+++ b/location/java/android/location/GeoFenceParams.java
@@ -0,0 +1,132 @@
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+ *
+ * Not a Contribution, Apache license notifications and license are retained
+ * for attribution purposes only.
+ *
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.location;
+
+import android.app.PendingIntent;
+import android.os.Binder;
+import android.os.Parcel;
+import android.os.Parcelable;
+import java.io.PrintWriter;
+
+/**
+ * GeoFenceParams for internal use
+ * {@hide}
+ */
+public class GeoFenceParams implements Parcelable {
+ public static final int ENTERING = 1;
+ public static final int LEAVING = 2;
+ public final int mUid;
+ public final double mLatitude;
+ public final double mLongitude;
+ public final float mRadius;
+ public final long mExpiration;
+ public final PendingIntent mIntent;
+ public final String mPackageName;
+
+ public static final Parcelable.Creator<GeoFenceParams> CREATOR = new Parcelable.Creator<GeoFenceParams>() {
+ public GeoFenceParams createFromParcel(Parcel in) {
+ return new GeoFenceParams(in);
+ }
+
+ @Override
+ public GeoFenceParams[] newArray(int size) {
+ return new GeoFenceParams[size];
+ }
+ };
+
+ public GeoFenceParams(double lat, double lon, float r,
+ long expire, PendingIntent intent, String packageName) {
+ this(Binder.getCallingUid(), lat, lon, r, expire, intent, packageName);
+ }
+
+ public GeoFenceParams(int uid, double lat, double lon, float r,
+ long expire, PendingIntent intent, String packageName) {
+ mUid = uid;
+ mLatitude = lat;
+ mLongitude = lon;
+ mRadius = r;
+ mExpiration = expire;
+ mIntent = intent;
+ mPackageName = packageName;
+ }
+
+ private GeoFenceParams(Parcel in) {
+ mUid = in.readInt();
+ mLatitude = in.readDouble();
+ mLongitude = in.readDouble();
+ mRadius = in.readFloat();
+ mExpiration = in.readLong();
+ mIntent = in.readParcelable(null);
+ mPackageName = in.readString();
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeInt(mUid);
+ dest.writeDouble(mLatitude);
+ dest.writeDouble(mLongitude);
+ dest.writeFloat(mRadius);
+ dest.writeLong(mExpiration);
+ dest.writeParcelable(mIntent, 0);
+ dest.writeString(mPackageName);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("GeoFenceParams:\n\tmUid - ");
+ sb.append(mUid);
+ sb.append("\n\tmLatitide - ");
+ sb.append(mLatitude);
+ sb.append("\n\tmLongitude - ");
+ sb.append(mLongitude);
+ sb.append("\n\tmRadius - ");
+ sb.append(mRadius);
+ sb.append("\n\tmExpiration - ");
+ sb.append(mExpiration);
+ sb.append("\n\tmIntent - ");
+ sb.append(mIntent);
+ return sb.toString();
+ }
+
+ public long getExpiration() {
+ return mExpiration;
+ }
+
+ public PendingIntent getIntent() {
+ return mIntent;
+ }
+
+ public int getCallerUid() {
+ return mUid;
+ }
+
+ public void dump(PrintWriter pw, String prefix) {
+ pw.println(prefix + this);
+ pw.println(prefix + "mLatitude=" + mLatitude + " mLongitude=" + mLongitude);
+ pw.println(prefix + "mRadius=" + mRadius + " mExpiration=" + mExpiration);
+ }
+}
diff --git a/location/java/android/location/IGeoFenceListener.aidl b/location/java/android/location/IGeoFenceListener.aidl
new file mode 100644
index 0000000..ccec143
--- /dev/null
+++ b/location/java/android/location/IGeoFenceListener.aidl
@@ -0,0 +1,30 @@
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+ *
+ * Not a Contribution, Apache license notifications and license are retained
+ * for attribution purposes only.
+ *
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.location;
+
+import android.app.PendingIntent;
+
+/**
+ * {@hide}
+ */
+oneway interface IGeoFenceListener {
+ void geoFenceExpired(in PendingIntent intent);
+}
diff --git a/location/java/android/location/IGeoFencer.aidl b/location/java/android/location/IGeoFencer.aidl
new file mode 100644
index 0000000..d576c6e
--- /dev/null
+++ b/location/java/android/location/IGeoFencer.aidl
@@ -0,0 +1,33 @@
+/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+ *
+ * Not a Contribution, Apache license notifications and license are retained
+ * for attribution purposes only.
+ *
+ * Copyright (C) 2007 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.location;
+
+import android.location.GeoFenceParams;
+import android.app.PendingIntent;
+
+/**
+ * {@hide}
+ */
+interface IGeoFencer {
+ boolean setGeoFence(in IBinder who, in GeoFenceParams params);
+ void clearGeoFence(in IBinder who, in PendingIntent fence);
+ void clearGeoFenceUser(int uid);
+}