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

View File

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