Merge "Fix NPE when re-registerNetworkCallbacks" into udc-dev

This commit is contained in:
Treehugger Robot
2023-05-09 20:12:11 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 2 deletions

View File

@@ -272,6 +272,10 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
private long mStartedChangedElapsedRealtime;
private int mFixInterval = 1000;
// True if handleInitialize() has finished;
@GuardedBy("mLock")
private boolean mInitialized;
private ProviderRequest mProviderRequest;
private int mPositionMode;
@@ -570,6 +574,9 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
}
updateEnabled();
synchronized (mLock) {
mInitialized = true;
}
}
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@@ -1718,8 +1725,12 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
}
// Re-register network callbacks to get an update of available networks right away.
mNetworkConnectivityHandler.unregisterNetworkCallbacks();
mNetworkConnectivityHandler.registerNetworkCallbacks();
synchronized (mLock) {
if (mInitialized) {
mNetworkConnectivityHandler.unregisterNetworkCallbacks();
mNetworkConnectivityHandler.registerNetworkCallbacks();
}
}
}
@Override

View File

@@ -303,6 +303,7 @@ class GnssNetworkConnectivityHandler {
void unregisterNetworkCallbacks() {
mConnMgr.unregisterNetworkCallback(mNetworkConnectivityCallback);
mNetworkConnectivityCallback = null;
}
/**