From 0d6e54e2461efd6574a78b664c42ef72cd2a79ba Mon Sep 17 00:00:00 2001 From: Wyatt Riley Date: Wed, 5 Oct 2016 12:03:03 -0700 Subject: [PATCH] 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 --- .../android/server/location/GnssLocationProvider.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index 7580cf4f0111..ae98077c7c2c 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 @@ public class GnssLocationProvider implements LocationProviderInterface { 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 @@ public class GnssLocationProvider implements LocationProviderInterface { } 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 @@ public class GnssLocationProvider implements LocationProviderInterface { handleInjectNtpTime(); break; case DOWNLOAD_XTRA_DATA: - if (mSupportsXtra) { - handleDownloadXtraData(); - } + handleDownloadXtraData(); break; case INJECT_NTP_TIME_FINISHED: mInjectNtpTimePending = STATE_IDLE; -- 2.11.0