summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorDavid Christie <dnchrist@google.com>2015-04-14 21:36:59 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-14 21:37:02 +0000
commit71bcd2aa5cefa767e76bc3117ed8534b67de21bc (patch)
tree96810704371a0ff30540b6cee629ed87591cfe61 /core/java/android
parent7caa691652a901ac354755c44990cca11b5cdb23 (diff)
parentcfc9b6d6ab3c622ea4f9d06c28d6e0d2055d98e1 (diff)
downloadframeworks_base-71bcd2aa5cefa767e76bc3117ed8534b67de21bc.zip
frameworks_base-71bcd2aa5cefa767e76bc3117ed8534b67de21bc.tar.gz
frameworks_base-71bcd2aa5cefa767e76bc3117ed8534b67de21bc.tar.bz2
Merge "Add versioning to FLP HAL."
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/hardware/location/GeofenceHardwareImpl.java11
-rw-r--r--core/java/android/hardware/location/IFusedLocationHardware.aidl5
2 files changed, 15 insertions, 1 deletions
diff --git a/core/java/android/hardware/location/GeofenceHardwareImpl.java b/core/java/android/hardware/location/GeofenceHardwareImpl.java
index 5d40e94..b34c9fb 100644
--- a/core/java/android/hardware/location/GeofenceHardwareImpl.java
+++ b/core/java/android/hardware/location/GeofenceHardwareImpl.java
@@ -41,6 +41,7 @@ import java.util.Iterator;
public final class GeofenceHardwareImpl {
private static final String TAG = "GeofenceHardwareImpl";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+ private static final int FIRST_VERSION_WITH_CAPABILITIES = 2;
private final Context mContext;
private static GeofenceHardwareImpl sInstance;
@@ -54,6 +55,7 @@ public final class GeofenceHardwareImpl {
private IFusedGeofenceHardware mFusedService;
private IGpsGeofenceHardware mGpsService;
private int mCapabilities;
+ private int mVersion = 1;
private int[] mSupportedMonitorTypes = new int[GeofenceHardware.NUM_MONITORS];
@@ -145,8 +147,10 @@ public final class GeofenceHardwareImpl {
private void updateFusedHardwareAvailability() {
boolean fusedSupported;
try {
+ final boolean hasGnnsCapabilities = (mVersion < FIRST_VERSION_WITH_CAPABILITIES)
+ || (mCapabilities & CAPABILITY_GNSS) != 0;
fusedSupported = (mFusedService != null
- ? mFusedService.isSupported() && (mCapabilities & CAPABILITY_GNSS) != 0
+ ? mFusedService.isSupported() && hasGnnsCapabilities
: false);
} catch (RemoteException e) {
Log.e(TAG, "RemoteException calling LocationManagerService");
@@ -177,6 +181,11 @@ public final class GeofenceHardwareImpl {
updateFusedHardwareAvailability();
}
+ public void setVersion(int version) {
+ mVersion = version;
+ updateFusedHardwareAvailability();
+ }
+
public void setFusedGeofenceHardware(IFusedGeofenceHardware service) {
if(mFusedService == null) {
mFusedService = service;
diff --git a/core/java/android/hardware/location/IFusedLocationHardware.aidl b/core/java/android/hardware/location/IFusedLocationHardware.aidl
index 3de766a..2ea4d23 100644
--- a/core/java/android/hardware/location/IFusedLocationHardware.aidl
+++ b/core/java/android/hardware/location/IFusedLocationHardware.aidl
@@ -121,4 +121,9 @@ interface IFusedLocationHardware {
* of the locations returned in this call.
*/
void flushBatchedLocations() = 11;
+
+ /**
+ * Returns the version of this FLP HAL implementation.
+ */
+ int getVersion() = 12;
}