From 3e34d135f7fca756d00ebdc50c55b4f12ef7a328 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Fri, 6 Aug 2010 10:06:26 -0400 Subject: [PATCH 1/2] GPS: Don't set XTRA download pending flag at boot time. XTRA data downloads are now strictly on demand from the GPS engine. Also fix typo in handleDownloadXtraData() Change-Id: Ied1a6e2e62134add4d965326aae909c86f834682 Signed-off-by: Mike Lockwood --- .../com/android/internal/location/GpsLocationProvider.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java index fa53ccfa0f66d..c3dddad6220ed 100755 --- a/location/java/com/android/internal/location/GpsLocationProvider.java +++ b/location/java/com/android/internal/location/GpsLocationProvider.java @@ -199,7 +199,7 @@ public class GpsLocationProvider implements LocationProviderInterface { // flags to trigger NTP or XTRA data download when network becomes available // initialized to true so we do NTP and XTRA when the network comes up after booting private boolean mInjectNtpTimePending = true; - private boolean mDownloadXtraDataPending = true; + private boolean mDownloadXtraDataPending = false; // true if GPS is navigating private boolean mNavigating; @@ -522,7 +522,7 @@ public class GpsLocationProvider implements LocationProviderInterface { } private void handleDownloadXtraData() { - if (!mDownloadXtraDataPending) { + if (!mNetworkAvailable) { // try again when network is up mDownloadXtraDataPending = true; return; From b445946deaad61fc3acaf4760a135fb92d0547b0 Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Tue, 17 Aug 2010 07:42:54 -0400 Subject: [PATCH 2/2] GPS: Initialize XTRA support when GPS is enabled BUG: 2923148 Change-Id: If9a643e385c6c567b30f47d4caa35fa812a2ba43 Signed-off-by: Mike Lockwood --- .../android/internal/location/GpsLocationProvider.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java index c3dddad6220ed..ab79147937e40 100755 --- a/location/java/com/android/internal/location/GpsLocationProvider.java +++ b/location/java/com/android/internal/location/GpsLocationProvider.java @@ -216,6 +216,9 @@ public class GpsLocationProvider implements LocationProviderInterface { // true if we started navigation private boolean mStarted; + // true if XTRA is supported + private boolean mSupportsXtra; + // for calculating time to first fix private long mFixRequestTime = 0; // time to first fix for most recent session @@ -659,6 +662,7 @@ public class GpsLocationProvider implements LocationProviderInterface { mEnabled = native_init(); if (mEnabled) { + mSupportsXtra = native_supports_xtra(); if (mSuplServerHost != null) { native_set_agps_server(AGPS_TYPE_SUPL, mSuplServerHost, mSuplServerPort); } @@ -860,7 +864,7 @@ public class GpsLocationProvider implements LocationProviderInterface { return true; } if ("force_xtra_injection".equals(command)) { - if (native_supports_xtra()) { + if (mSupportsXtra) { xtraDownloadRequest(); return true; } @@ -1383,7 +1387,7 @@ public class GpsLocationProvider implements LocationProviderInterface { handleInjectNtpTime(); break; case DOWNLOAD_XTRA_DATA: - if (native_supports_xtra()) { + if (mSupportsXtra) { handleDownloadXtraData(); } break;