Removing over-active NTP & XTRA assistance downloads
Restoring pre-Connectivity-Manager intended behavior of only
pending-network NTP & XTRA downloads restarting when
network connectivity returns
Bug: 31864876
Fixes: 31864876
Change-Id: I5b967e75c610277988e8e9cfa1e938c999333edb
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index 7580cf4..ae98077 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -452,8 +452,12 @@
new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
- requestUtcTime();
- xtraDownloadRequest();
+ if (mInjectNtpTimePending == STATE_PENDING_NETWORK) {
+ requestUtcTime();
+ }
+ if (mDownloadXtraDataPending == STATE_PENDING_NETWORK) {
+ xtraDownloadRequest();
+ }
}
};
@@ -1002,6 +1006,11 @@
}
private void handleDownloadXtraData() {
+ if (!mSupportsXtra) {
+ // native code reports xtra not supported, don't try
+ Log.d(TAG, "handleDownloadXtraData() called when Xtra not supported");
+ return;
+ }
if (mDownloadXtraDataPending == STATE_DOWNLOADING) {
// already downloading data
return;
@@ -2125,9 +2134,7 @@
handleInjectNtpTime();
break;
case DOWNLOAD_XTRA_DATA:
- if (mSupportsXtra) {
- handleDownloadXtraData();
- }
+ handleDownloadXtraData();
break;
case INJECT_NTP_TIME_FINISHED:
mInjectNtpTimePending = STATE_IDLE;