From 8abefbefe230911b2383ec9917bf7bffa28087f7 Mon Sep 17 00:00:00 2001 From: Yu-Han Yang Date: Thu, 22 Sep 2022 22:20:02 +0000 Subject: [PATCH] Re-register NetworkCallback after HAL restarts Without this change, after HAL restarts, the HAL does not know the current network state (wifi/cell availability). Bug: 245891785 Test: manual Change-Id: Ia4926d6c050a739cce5ec36225bc8419e2e69455 --- .../android/server/location/gnss/GnssLocationProvider.java | 4 ++++ .../server/location/gnss/GnssNetworkConnectivityHandler.java | 4 ++++ 2 files changed, 8 insertions(+) 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 a6a3db11b7298..9e5e3541c5e66 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 dc1f4ddb19b9f..02bdfd5bcb564 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.