Merge "Handle TooManyRequestsException" into tm-dev

This commit is contained in:
Yu-Han Yang
2022-05-12 17:28:16 +00:00
committed by Android (Google) Code Review

View File

@@ -200,7 +200,7 @@ class GnssNetworkConnectivityHandler {
mHandler = new Handler(looper); mHandler = new Handler(looper);
mNiHandler = niHandler; mNiHandler = niHandler;
mConnMgr = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); mConnMgr = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
mSuplConnectivityCallback = createSuplConnectivityCallback(); mSuplConnectivityCallback = null;
} }
/** /**
@@ -584,11 +584,21 @@ class GnssNetworkConnectivityHandler {
networkRequestBuilder.setNetworkSpecifier(Integer.toString(mActiveSubId)); networkRequestBuilder.setNetworkSpecifier(Integer.toString(mActiveSubId));
} }
NetworkRequest networkRequest = networkRequestBuilder.build(); NetworkRequest networkRequest = networkRequestBuilder.build();
// Make sure we only have a single request.
if (mSuplConnectivityCallback != null) {
mConnMgr.unregisterNetworkCallback(mSuplConnectivityCallback);
}
mSuplConnectivityCallback = createSuplConnectivityCallback();
try {
mConnMgr.requestNetwork( mConnMgr.requestNetwork(
networkRequest, networkRequest,
mSuplConnectivityCallback, mSuplConnectivityCallback,
mHandler, mHandler,
SUPL_NETWORK_REQUEST_TIMEOUT_MILLIS); SUPL_NETWORK_REQUEST_TIMEOUT_MILLIS);
} catch (RuntimeException e) {
Log.e(TAG, "Failed to request network.", e);
handleReleaseSuplConnection(GPS_AGPS_DATA_CONN_FAILED);
}
} }
private int getNetworkCapability(int agpsType) { private int getNetworkCapability(int agpsType) {
@@ -619,7 +629,10 @@ class GnssNetworkConnectivityHandler {
} }
mAGpsDataConnectionState = AGPS_DATA_CONNECTION_CLOSED; mAGpsDataConnectionState = AGPS_DATA_CONNECTION_CLOSED;
if (mSuplConnectivityCallback != null) {
mConnMgr.unregisterNetworkCallback(mSuplConnectivityCallback); mConnMgr.unregisterNetworkCallback(mSuplConnectivityCallback);
mSuplConnectivityCallback = null;
}
switch (agpsDataConnStatus) { switch (agpsDataConnStatus) {
case GPS_AGPS_DATA_CONN_FAILED: case GPS_AGPS_DATA_CONN_FAILED:
native_agps_data_conn_failed(); native_agps_data_conn_failed();