summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/location/gnss/GnssLocationProvider.java4
-rw-r--r--services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java4
2 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
index 164f4b4833d0..e653f0466863 100644
--- a/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/gnss/GnssLocationProvider.java
@@ -1616,6 +1616,10 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
updateEnabled();
restartLocationRequest();
}
+
+ // Re-register network callbacks to get an update of available networks right away.
+ mNetworkConnectivityHandler.unregisterNetworkCallbacks();
+ mNetworkConnectivityHandler.registerNetworkCallbacks();
}
@Override
diff --git a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
index dc1f4ddb19b9..02bdfd5bcb56 100644
--- a/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
+++ b/services/core/java/com/android/server/location/gnss/GnssNetworkConnectivityHandler.java
@@ -301,6 +301,10 @@ class GnssNetworkConnectivityHandler {
mConnMgr.registerNetworkCallback(networkRequest, mNetworkConnectivityCallback, mHandler);
}
+ void unregisterNetworkCallbacks() {
+ mConnMgr.unregisterNetworkCallback(mNetworkConnectivityCallback);
+ }
+
/**
* @return {@code true} if there is a data network available for outgoing connections,
* {@code false} otherwise.