From 38feb6f1ece3b5213a42341c6dd91fd3e12b0760 Mon Sep 17 00:00:00 2001 From: David Christie Date: Fri, 15 May 2015 13:23:08 -0700 Subject: [PATCH] Fix issue where GeofenceHardwareImpl can crash. -It can't be instantiated before looper thread is ready. Bug: 21185178 Change-Id: I9e5434f7821c608a01bfd962c5482f6c2c2a022d --- .../com/android/server/location/FlpHardwareProvider.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/location/FlpHardwareProvider.java b/services/core/java/com/android/server/location/FlpHardwareProvider.java index 1fb22bea1a6f0..259ff1d4c553c 100644 --- a/services/core/java/com/android/server/location/FlpHardwareProvider.java +++ b/services/core/java/com/android/server/location/FlpHardwareProvider.java @@ -48,7 +48,7 @@ public class FlpHardwareProvider { // Capabilities provided by FlpCallbacks private boolean mHaveBatchingCapabilities; private int mBatchingCapabilities; - private int mVersion; + private int mVersion = 1; private static FlpHardwareProvider sSingletonInstance = null; @@ -154,7 +154,9 @@ public class FlpHardwareProvider { private void setVersion(int version) { mVersion = version; - getGeofenceHardwareSink().setVersion(version); + if (mGeofenceHardwareSink != null) { + mGeofenceHardwareSink.setVersion(version); + } } private void maybeSendCapabilities() { @@ -480,6 +482,7 @@ public class FlpHardwareProvider { private GeofenceHardwareImpl getGeofenceHardwareSink() { if (mGeofenceHardwareSink == null) { mGeofenceHardwareSink = GeofenceHardwareImpl.getInstance(mContext); + mGeofenceHardwareSink.setVersion(mVersion); } return mGeofenceHardwareSink;