Fix crash in Volantis because there is not FLP support.

b/16690237

Change-Id: Ie2dd159ad4e9b5cf4b3e2e66023b456927f18130
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index 132aa55..28a6917 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -482,8 +482,11 @@
         }
 
         // bind to fused hardware provider if supported
-        FlpHardwareProvider flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
+        // in devices without support, requesting an instance of FlpHardwareProvider will raise an
+        // exception, so make sure we only do that when supported
+        FlpHardwareProvider flpHardwareProvider;
         if (FlpHardwareProvider.isSupported()) {
+            flpHardwareProvider = FlpHardwareProvider.getInstance(mContext);
             FusedProxy fusedProxy = FusedProxy.createAndBind(
                     mContext,
                     mLocationHandler,
@@ -495,6 +498,7 @@
                 Slog.e(TAG, "Unable to bind FusedProxy.");
             }
         } else {
+            flpHardwareProvider = null;
             Slog.e(TAG, "FLP HAL not supported");
         }
 
@@ -505,7 +509,7 @@
                 com.android.internal.R.array.config_locationProviderPackageNames,
                 mLocationHandler,
                 gpsProvider.getGpsGeofenceProxy(),
-                flpHardwareProvider.getGeofenceHardware());
+                flpHardwareProvider != null ? flpHardwareProvider.getGeofenceHardware() : null);
         if (provider == null) {
             Slog.e(TAG,  "Unable to bind FLP Geofence proxy.");
         }