118 Commits

Author SHA1 Message Date
Mike Lockwood
d03ff94fe5 Clean up interface between LocationManagerService and the location providers:
LocationManagerService now uses new Java interface LocationProviderInterface
rather than LocationProviderProxy to refer to location providers internally.

LocationProviderProxy and the ILocationProvider binder interface are only
used for location providers implemented as services (NetworkLocationProvider)

Built-in location providers (GpsLocationProvider and mock providers) now just
implement LocationProviderInterface rather than using a Binder interface and proxy object.

Delete obsolete and unused TestLocationProvider class.

Change-Id: Id800e7c1864f7c666f8e37125c05896493b9c8c4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-10 09:41:25 -05:00
Mike Lockwood
628fd6d9c1 Network Location unbundling:
The network location and geocode provider services are now started on demand
and their interfaces are now retrieved via bindService().

Remove obsolete LocationManager installLocationProvider() and installGeocodeProvider() methods.

Add abstract class android.location.provider.GeocodeProvider to provide a public wrapper to
the IGeocodeProvider Binder interface. Replaces the LocationManager.GeocodeProvider interface.

Rename LocationProviderImpl to android.location.provider.LocationProvider.

Move LocationManager.reportLocation() to android.location.provider.LocationProvider,
so all methods related to external location providers are now all in one class.

Avoid calling from the Location Manager Service into providers that are disabled so we
do not start the network location service unnecessarily.

Change-Id: If3ed2d5d62b83ba508006711d575cad09f4a0007
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-08 23:20:27 -05:00
Mike Lockwood
271f9f172b Fix for GPS engines without separate session and engine status events.
GPS_STATUS_SESSION_BEGIN now implies GPS_STATUS_ENGINE_ON
and GPS_STATUS_ENGINE_OFF now implies GPS_STATUS_SESSION_END.

Change-Id: I7217dc5213ae9a5658ac81b0a14b61d3e36ca0f6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-02 11:41:52 -05:00
Mike Lockwood
5310b36a37 resolved conflicts for merge of 21875ab3 to master
Change-Id: I447e813b3ec460bbc9050de6b95bd663bb33c86f
2010-02-02 09:15:37 -05:00
Mike Lockwood
56fcd69b14 Remove unused method LocationProviderImpl.isEnabled().
This should have been removed in my previous change.

Change-Id: I3a080888f995e77a61e3ebf1c194ccd65686af1e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-01 15:34:52 -05:00
Mike Lockwood
2cd543aad5 Remove ILocationProvider.isEnabled() binder call and use cached value instead.
Change-Id: Id6a9f6d2e2f5cc5810a2beeb0f869f06e2d18860
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-02-01 12:18:59 -05:00
Neal Nguyen
1a44d5dcab Phase 2 of test cleanup: moving test files from AndroidTests closer to their sources.
Most of these are file moves; a couple notable exceptions are the changes due to the move, and fixing up test code:
- database/DatabaseCursorTest.java
- database/DatabaseStatementTest.java
- net/UriTest.java
2010-01-29 13:35:51 -08:00
Mike Lockwood
f1218be2d8 Ignore NTP time fixes that differ from system time by more than 5 minutes.
Change-Id: I603195f6925e25baccd18190016cf8611bb9dc1b
BUG: 2402380
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-29 09:20:06 -05:00
Neal Nguyen
22e31e5b60 Moving framework core tests closer to their source files.
Phase 2 of test case cleanup; distributing CoreTests files closer to their respective sources under frameworks.
2010-01-27 13:36:38 -08:00
Mike Lockwood
345bf168db am 47d302a0: am bb79e5fd: Merge "Be tolerant of GPS session and engine on status messages arriving out of order." into eclair
Merge commit '47d302a001c71f90bee8dc31d868b463a47f2d51'

* commit '47d302a001c71f90bee8dc31d868b463a47f2d51':
  Be tolerant of GPS session and engine on status messages arriving out of order.
2010-01-22 17:04:47 -08:00
Mike Lockwood
cf1d8cb36f Be tolerant of GPS session and engine on status messages arriving out of order.
BUG: 2366194

Change-Id: I642dacd397202f671adba5a863394438ca62988d
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-20 10:20:54 -05:00
Mike Lockwood
52eab1c760 Unhide LocationManager APIs needed for unbundled location providers.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-11 12:32:50 -05:00
Joe Onorato
f5d95cbc1a less log spew 2010-01-08 15:46:24 -05:00
Mike Lockwood
be5ed378d9 Fix broken Javadoc link.
Change-Id: Ia72dc3dccf95f95c6847eb52d8b210ed774a804b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-06 23:15:33 -05:00
Mike Lockwood
9d2f7a7d66 Add LocationManagerImpl class to act as a public wrapper for the ILocationProvider interface
Location providers implemented outside of the core android platform (like network location)
can subclass LocationManagerImpl to implement the location provider interface
without being bound too tightly to the location manager internals.

Change-Id: Id193d4d09f9a14bea13e81af03c914074cd37cb9
2010-01-06 22:35:46 -05:00
Mike Lockwood
34901409a4 Cleanup and add public wrapper for IGeocodeProvider interface to prepare for network location unbundling.
Change-Id: I6523d115b56dbf450121e73d48e151f200827eb4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-01-05 23:39:29 -05:00
Paul Westbrook
7762d93621 Unbundling work
Moved AndroidHttpClient, Rfc822InputFilter, Rfc822Validator
NumberPicker, NumberPickerButton to android-common
---
2009-12-14 09:24:09 -08:00
Mike Lockwood
dbd6fd8ebb GpsLocationProvider: Do not release wakelock until the GPS engine is fully off
Change-Id: I705b1d33af2d70aa1084cca8f6280fade9461d2c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-12-07 18:46:55 -05:00
Mike Lockwood
03d246779e GPS: Fix problem with SUPL when SUPL APN is already active.
Use ConnectivityManager.CONNECTIVITY_ACTION broadcast in LocationManagerService
to notify GPS when SUPL connection is ready instead of TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED,
which is not sent in all cases.
Expand LocationProvider.updateNetworkState() to include NetworkInfo object.

Fixes bug b/2155661

Change-Id: Iee227ace7d536b36cf7973e3e6a8b7a621ce6565
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-10-08 17:24:21 -04:00
Mike Lockwood
9aa1fa2d36 LocationManagerService: Remove caching of last known locations to flash.
Change-Id: Ibbab20a7c48823fb74c2e175824f55248f25bf8a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-09-01 07:51:15 -04:00
Danke Xie
22d1f9fb23 gps: Network initiated SUPL
Initial contribution from Qualcomm.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-08-27 14:18:30 -07:00
Mike Lockwood
660bbfcc54 GpsLocationProvider: Default to AGPS on if the setting is missing.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-08-25 16:01:37 -07:00
Mike Lockwood
640992dec9 gps: Unhide GpsStatus.NmeaListener interface for receiving NMEA sentences
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-08-06 19:19:45 -04:00
Mike Lockwood
b16e7800be gps: Add GpsStatus.NmeaListener interface for receiving NMEA sentences.
NMEA sentences are passed from the GPS engine to the GpsLocationProvider.
They are then sent via the IGpsStatusListener binder interface to clients
using the same path as the other GPS status information.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-08-06 15:05:07 -04:00
Mike Lockwood
734d6031a6 GPS: Don't call native_set_agps_server() until after we call native_init().
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-07-28 18:33:41 -07:00
Mike Lockwood
2bb99d1e2f GpsLocationProvider: remove mAgpsConfigured configured flag.
This flag was unnecessary because the lower level GPS code already checks for this
and this was causing problems for a GPS implementation that does not use /etc/gps.conf

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-07-17 10:56:56 -04:00
Android (Google) Code Review
334a67740c am b82759a0: Merge change 6906 into donut
Merge commit 'b82759a051f55852dabe201ad3354ea9b7b2979d'

* commit 'b82759a051f55852dabe201ad3354ea9b7b2979d':
  location: Add sub-locality, sub-thoroughfare and premises fields to Address class
2009-07-14 12:54:41 -07:00
Mike Lockwood
8cd1084ed1 location: Add sub-locality, sub-thoroughfare and premises fields to Address class
This is required for fully describing locations in Japan.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-07-14 14:41:22 -04:00
Kenny Root
55ed4914de Fix typo in Javadoc for LocationManager.GPS_PROVIDER 2009-07-07 12:42:51 -07:00
Android (Google) Code Review
0d0012ef16 am 54af78a3: Merge change 5950 into donut
Merge commit '54af78a3f7064e04d7ebd64c985d4149f9f7b05c'

* commit '54af78a3f7064e04d7ebd64c985d4149f9f7b05c':
  Fix memory leaks in system_server
2009-07-02 15:23:56 -07:00
Suchi Amalapurapu
fff2fda019 Fix memory leaks in system_server
unlink DeathRecipients in a whole bunch of places to avoid memory leaks
2009-07-01 12:55:30 -07:00
Mike Lockwood
bcab8df83e Settings: Add preference to enable/disable assisted GPS.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-06-25 17:15:32 -04:00
Dianne Hackborn
3618160a1a am 2e418428: Possibly fix an issue where we thought an app was always using GPS.
Merge commit '2e418428987132ea66533cbc05f9c526eb59519a'

* commit '2e418428987132ea66533cbc05f9c526eb59519a':
  Possibly fix an issue where we thought an app was always using GPS.
2009-06-23 13:08:40 -07:00
Dianne Hackborn
2e41842898 Possibly fix an issue where we thought an app was always using GPS.
There may be some race conditions in the gps provider where it can cause a uid
to be double booked for gps usage and never released.  Address this by tweaking
some locking (so mLocation and the uid array are protected by a lock both when
reading and writing).  Also add some code to log a warning if someone tries to
note a particular uid multiple times, since the code will break in that case.

Finally, fix a problem in the battery stats where we weren't allowing a new Uid
structure to be created in many cases for calls coming in.
2009-06-23 12:51:06 -07:00
Android (Google) Code Review
15d748659d am cde13e6b: Merge change 4954 into donut
Merge commit 'cde13e6bfa6465d5770755892e2ee234a1f85d5c'

* commit 'cde13e6bfa6465d5770755892e2ee234a1f85d5c':
  gps: Check for null APN name to avoid a runtime restart.
2009-06-22 13:24:50 -07:00
Mike Lockwood
b362a9ab91 gps: Check for null APN name to avoid a runtime restart.
We still need to figure out how the APN name is getting set to empty string
by the telephony code.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-06-22 16:20:39 -04:00
Android (Google) Code Review
84c4335f86 am f781b39c: Merge change 4786 into donut
Merge commit 'f781b39cb89dc19e6ad090bd3eb1bedbe7928429'

* commit 'f781b39cb89dc19e6ad090bd3eb1bedbe7928429':
  gps: Set SUPL server via hostname rather than IP address.
2009-06-19 12:12:18 -07:00
Mike Lockwood
a9e546169b gps: Set SUPL server via hostname rather than IP address.
The GPS engine needs the hostname for the secure SUPL case
and deferring the DNS lookup to the HAL might be helpful in the future
if the SUPL server is on a carrier's private network.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-06-19 14:54:42 -04:00
Android (Google) Code Review
989895e43f am fa699ea2: Merge change 3899 into donut
Merge commit 'fa699ea22a13a92694de75ef948a81da23e71642'

* commit 'fa699ea22a13a92694de75ef948a81da23e71642':
  GpsLocationProvider: Add hooks for GPS location injection.
2009-06-11 11:41:38 -07:00
Mike Lockwood
d26ce0d903 GpsLocationProvider: Add hooks for GPS location injection.
This will allow injecting cell ID location to the GPS
(not implemented yet).

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-06-11 12:42:25 -04:00
Android (Google) Code Review
9b1e1400df am 8c690ea9: Merge change 2182 into donut
Merge commit '8c690ea9976d644db3c96eddbbbd2d50eac56913'

* commit '8c690ea9976d644db3c96eddbbbd2d50eac56913':
  location: Replace ILocationCollector interface with new ILocationProvider method
2009-05-21 09:42:38 -07:00
Mike Lockwood
fd6e5f0dda location: Replace ILocationCollector interface with new ILocationProvider method
This change replaces ILocationCollector with a more general mechanism that
passes locations received from a provider to all other providers.
The network location provider now uses this to implement the location collector.
In the future, this could be used to inject network locations to the GPS
as aiding data.

This change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-21 11:28:20 -04:00
Android (Google) Code Review
0376fe43e6 am 2d10ba33: Merge change 2111 into donut
Merge commit '2d10ba33190c2ff1b24d6c48dd621c55a25bf2cc'

* commit '2d10ba33190c2ff1b24d6c48dd621c55a25bf2cc':
  GPS: Add support for forcing NTP time and XTRA data injection.
2009-05-20 14:11:34 -07:00
Mike Lockwood
93bc44d721 GPS: Add support for forcing NTP time and XTRA data injection.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-20 16:58:22 -04:00
Android (Google) Code Review
2848954530 am 02c1c46f: Merge change 1674 into donut
Merge commit '02c1c46fff22490f884f05520d58eadae1442db8'

* commit '02c1c46fff22490f884f05520d58eadae1442db8':
  gps: Time out after 1 minute if we are unable to get a fix and our fix interval is long.
2009-05-14 14:53:34 -07:00
Mike Lockwood
0632ca7bbe gps: Time out after 1 minute if we are unable to get a fix and our fix interval is long.
This will prevent us from keeping the processor awake indefinitely if a
background service is requesting periodic updates and we are unable to get a fix.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-14 15:51:03 -04:00
Mike Lockwood
9e5d5d6fac am 3681f26: LocationManager: Recover if process containing NetworkLocat
Merge commit '3681f2614fa8c10560c790f6b4287f65d6fd2663'

* commit '3681f2614fa8c10560c790f6b4287f65d6fd2663':
  LocationManager:  Recover if process containing NetworkLocation provider crashes
2009-05-12 07:58:55 -07:00
Mike Lockwood
3681f2614f LocationManager: Recover if process containing NetworkLocation provider crashes
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-12 10:52:03 -04:00
Mike Lockwood
9e35560672 am 2677d0d: LocationManager: Fix a Javadoc comment.
Merge commit '2677d0da34acad93cd7f164d587ccc30c46facc6'

* commit '2677d0da34acad93cd7f164d587ccc30c46facc6':
  LocationManager: Fix a Javadoc comment.
2009-05-12 06:26:37 -07:00
Mike Lockwood
2677d0da34 LocationManager: Fix a Javadoc comment.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-12 09:22:21 -04:00