summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/DockObserver.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/services/java/com/android/server/DockObserver.java b/services/java/com/android/server/DockObserver.java
index 73e760e59b98..28236f00b4ab 100644
--- a/services/java/com/android/server/DockObserver.java
+++ b/services/java/com/android/server/DockObserver.java
@@ -181,8 +181,7 @@ class DockObserver extends UEventObserver {
public void onLocationChanged(Location location) {
final boolean hasMoved = hasMoved(location);
- final boolean hasBetterAccuracy = location.getAccuracy() < mLocation.getAccuracy();
- if (hasMoved || hasBetterAccuracy) {
+ if (hasMoved || hasBetterAccuracy(location)) {
synchronized (this) {
mLocation = location;
}
@@ -201,6 +200,16 @@ class DockObserver extends UEventObserver {
public void onStatusChanged(String provider, int status, Bundle extras) {
}
+ private boolean hasBetterAccuracy(Location location) {
+ if (location == null) {
+ return false;
+ }
+ if (mLocation == null) {
+ return true;
+ }
+ return location.getAccuracy() < mLocation.getAccuracy();
+ }
+
/*
* The user has moved if the accuracy circles of the two locations
* don't overlap.