Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e001346 authored by Dante Russo's avatar Dante Russo Committed by Linux Build Service Account
Browse files

geofence: Low power geofence HW implementation

HW implemntation overwrites the SW implementation

Change-Id: Id738f2808691c35e5507e1d557bc5351456953ad
Conflicts:
Android.mk
services/core/java/com/android/server/LocationManagerService.java
parent a2a77d61
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -300,6 +300,8 @@ LOCAL_SRC_FILES += \
	location/java/android/location/IGeofenceProvider.aidl \
	location/java/android/location/IGpsMeasurementsListener.aidl \
	location/java/android/location/IGpsNavigationMessageListener.aidl \
        location/java/android/location/IGeoFencer.aidl \
        location/java/android/location/IGeoFenceListener.aidl \
	location/java/android/location/IGpsStatusListener.aidl \
	location/java/android/location/IGpsStatusProvider.aidl \
	location/java/android/location/ILocationListener.aidl \
+3 −0
Original line number Diff line number Diff line
@@ -964,6 +964,9 @@
        -->
    </string-array>

    <!-- Component name of the service providing geofence API support. -->
    <string name="config_geofenceProvider" translatable="false">com.qualcomm.location</string>

    <!-- Boolean indicating if current platform supports bluetooth SCO for off call
    use cases -->
    <bool name="config_bluetooth_sco_off_call">true</bool>
+1 −0
Original line number Diff line number Diff line
@@ -1662,6 +1662,7 @@
  <java-symbol type="string" name="config_geocoderProviderPackageName" />
  <java-symbol type="string" name="config_geofenceProviderPackageName" />
  <java-symbol type="string" name="config_networkLocationProviderPackageName" />
  <java-symbol type="string" name="config_geofenceProvider" />
  <java-symbol type="string" name="config_wimaxManagerClassname" />
  <java-symbol type="string" name="config_wimaxNativeLibLocation" />
  <java-symbol type="string" name="config_wimaxServiceClassname" />
+23 −0
Original line number Diff line number Diff line
/* 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;
+132 −0
Original line number Diff line number Diff line
/* 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);
    }
}
Loading