Add support for sources in Geofencing APIs.
Support setting the source when adding geofences.
b/14117199
Surface the source when FLP geofence changes state.
b/14119200
Change-Id: I50dc40a9caee400594e1778c98e284e0db0d5e66
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 3a4e2ee..132aa55 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -482,33 +482,32 @@
}
// bind to fused hardware provider if supported
+ FlpHardwareProvider flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
if (FlpHardwareProvider.isSupported()) {
- FlpHardwareProvider flpHardwareProvider =
- FlpHardwareProvider.getInstance(mContext);
- FusedProxy fusedProxy = FusedProxy.createAndBind(
- mContext,
- mLocationHandler,
- flpHardwareProvider.getLocationHardware(),
- com.android.internal.R.bool.config_enableHardwareFlpOverlay,
- com.android.internal.R.string.config_hardwareFlpPackageName,
- com.android.internal.R.array.config_locationProviderPackageNames);
- if(fusedProxy == null) {
- Slog.e(TAG, "Unable to bind FusedProxy.");
- }
-
- // bind to geofence provider
- GeofenceProxy provider = GeofenceProxy.createAndBind(mContext,
- com.android.internal.R.bool.config_enableGeofenceOverlay,
- com.android.internal.R.string.config_geofenceProviderPackageName,
- com.android.internal.R.array.config_locationProviderPackageNames,
- mLocationHandler,
- gpsProvider.getGpsGeofenceProxy(),
- flpHardwareProvider.getGeofenceHardware());
- if (provider == null) {
- Slog.e(TAG, "Unable to bind FLP Geofence proxy.");
- }
+ FusedProxy fusedProxy = FusedProxy.createAndBind(
+ mContext,
+ mLocationHandler,
+ flpHardwareProvider.getLocationHardware(),
+ com.android.internal.R.bool.config_enableHardwareFlpOverlay,
+ com.android.internal.R.string.config_hardwareFlpPackageName,
+ com.android.internal.R.array.config_locationProviderPackageNames);
+ if (fusedProxy == null) {
+ Slog.e(TAG, "Unable to bind FusedProxy.");
+ }
} else {
- Slog.e(TAG, "FLP HAL not supported.");
+ Slog.e(TAG, "FLP HAL not supported");
+ }
+
+ // bind to geofence provider
+ GeofenceProxy provider = GeofenceProxy.createAndBind(
+ mContext,com.android.internal.R.bool.config_enableGeofenceOverlay,
+ com.android.internal.R.string.config_geofenceProviderPackageName,
+ com.android.internal.R.array.config_locationProviderPackageNames,
+ mLocationHandler,
+ gpsProvider.getGpsGeofenceProxy(),
+ flpHardwareProvider.getGeofenceHardware());
+ if (provider == null) {
+ Slog.e(TAG, "Unable to bind FLP Geofence proxy.");
}
// bind to the hardware activity recognition if supported