Commit Graph

18 Commits

Author SHA1 Message Date
Soonil Nagarkar
e97179d846 Update batching APIs
After API council feedback, use List<Location> in public APIs rather
than LocationResult.

Bug: 173712888
Test: atest CtsLocationFineTestCases
Change-Id: I02caa1f9c7164b52ef55c71ca14fb2bd7e311a85
2021-02-03 17:02:14 -08:00
Soonil Nagarkar
49983fcbbd Copy LocationProviderBase API into SystemApi surface
This allows third party location providers to link against the standard
API surface. This replaces the LocationProviderBase implementation in
the com.android.location.providers API. Both will temporarily coexist
until third party applications can be migrated, and then old version
will be removed. Only the LocationProviderBase API is migrated right now
as its the only API that has undergone changes.

This also restores some old, unused classes which should not have been
remove from the API surface. Clients that support older API version will
still need to link against these classes.

Bug: 176115245
Test: builds
Change-Id: I2d688447e1f59e441f5c48ff36d3f0dd8b5dc7f6
2021-01-08 10:33:44 -08:00
Neil Fuller
204b52a384 Delete location.timezone.provider API classes
Delete location.timezone.provider API classes and associated internal
classes that are no longer used.

Bug: 175633818
Test: build
Change-Id: I66319e63e3150e3b71f31f8d9404e4114f802662
2021-01-05 20:36:29 +00:00
Soonil Nagarkar
be6ed5aa14 Add batching APIs and Location.equals()
-Moves batching APIs from SystemApi to Public, and makes them
multi-client safe.
-Adds equals/hashcode to Location.

Bug: 171512333
Test: manual + presubmit
Change-Id: I6ee28f8229fdf49386cd370ea785de63b97e7cde
2020-11-10 10:14:34 -08:00
Soonil Nagarkar
f6a861a34f Add quality to LocationRequest/ProviderRequest
Expose quality APIs publically after refactoring them to match external
usage of quality constants. Removes list of location requests from
provider request, as there is no client that really uses this, and it
feels like too much information to give to providers.

Bug: 168624248
Test: presubmits
Change-Id: Icf8a9f6096da0071d97190d3f7196948492e52a1
2020-10-14 16:53:50 -07:00
Neil Fuller
0c59c9c166 Expose the LTZP in the location provider API
Expose the LocationTimeZoneProvider and associated classes in the
location lib API.

Bug: 152744911
Test: build only
Change-Id: Ib577bbdee10d7778e28fc1c6003cc97fdb15acb3
2020-09-25 12:50:48 +01:00
Soonil Nagarkar
f2bc6ba3a0 Fix up provider internal/external APIs
-Encapsulate various fields
-Bring naming in line with API guidelines
-Minor refactoring

Bug: 168621146
Test: manual
Change-Id: I55681a3d84d7833c98569a13a57e6c4f0b728a67
2020-09-15 17:13:46 -07:00
Soonil Nagarkar
470c8f6a3f Give location providers a known identity
Providers no longer need the ability to specify additional packages,
this can be replaced with tracking the provider identity.

In addition, move CallerIdentity into the client space, and fix some
minor GNSS bugs.

Bug: 149839935
Test: atest LocationProviderTest
Change-Id: Ide107abc61531946b20d2ac50cd9555fc215ef03
2020-03-04 12:38:31 -08:00
Soonil Nagarkar
3819f972df Revert requestSetProviderEnabled API
Bug: 144955780
Test: presubmits
Change-Id: Iec8520acfd98b9d9d92a4876ebfa899ac2a0731e
2020-02-19 14:39:58 -08:00
Soonil Nagarkar
980ce6a741 Add DPM API to request location provider enable
DPM can currently control the master location toggle, but cannot
influence the behavior of individual providers. This adds an API for
DPM (or other privileged entities) to request a provider to turn itself
on.

Practically, this is necessary to allow DPM to control network location,
which may be gated by additional consents. This change also renames some
internal location code to make clearer the distinction between provider
enabled and provider allowed: enabled = location on && allowed

Bug: 136219903
Test: CTS tests to be added
Change-Id: I05f03c976428f0f5a8a2cf627a84dc9e2baf3e67
2020-01-23 18:06:31 -08:00
Soonil Nagarkar
44efeaef4d Add RequiresApi annotations to LocationProvider
Ensures that lint tests can run properly from client code which uses
this library.

Bug: 130188099
Test: manual
Change-Id: I1d3c8e486c38633d73c405f2c6f9b350ef1e6946
2019-04-15 18:45:22 -07:00
Soonil Nagarkar
91f0d2d205 Remove cross process dump() call
This call has never worked in testing, and adds a significant penalty to
dumping LocationManagerService.

Bug: 125313528
Test: manually
Change-Id: Ia455578e2b941c5a0888abb79a13adc0bb55729a
2019-02-22 14:15:30 -08:00
Soonil Nagarkar
509580fbdf Refactor API naming and add unbundled support
Rename APIs while there are no clients. Also prevent throttling when
location settings are being ignored.

Bug: 118883513
Test: manual
Change-Id: I225c50b152e77ab181c959ecd9dc652333f59d5e
2019-02-13 13:34:45 -08:00
Soonil Nagarkar
0d77ea6893 Change provider packages API to test all providers
This will replace the LocationManager.getNetworkProviderPackage() API
with LocationManager.isProviderPackage(). The network provider should
not be considered special.

In addition, providers now have the ability to specify additional
packages that may make location requests on their behalf, so that those
packages can be considered location providers as well.

Bug: 117177078
Test: manually
Change-Id: I204b56e7bb40874ac3347988474fb8afa787feb8
2019-02-04 10:58:24 -08:00
Tor Norbye
68ea0c3c13 Update signature files to the new format
The new format is described in tools/metalava/FORMAT.md.

Fixes: 116589402 Switch signature files over to the v2 format
Fixes: 112626813 Drop "synchronized" modifier from the signature format
Fixes: 122358225 Omit overriding methods that only differ in final [...]
Fixes: 73088715 API Review: Need doclava to output nullability
Fixes: 79739773 API Review: Metalava enforcing constants are constant
Exempt-From-Owner-Approval: Large-scale tooling change
Test: make sdk, make update-api, make checkapi
Change-Id: Ia248aece5250e84e47c815c601133b698bf644c2
2019-01-19 12:07:50 -08:00
Soonil Nagarkar
1575a04e7b Refactor how location providers are managed
Put enabled/disabled state under location provider control, and use it
to represent whether a location provider may be used, not whether the
user has enabled or disabled a location provider.

Bug: 118885128
Test: manually
Change-Id: I1209c49c13ca8995b223f383ad332322fffc7a96
2018-12-10 10:29:17 -08:00
Soonil Nagarkar
94749f7ad1 Deprecate location provider status callbacks
Deprecate and remove logic around location provider status.

Bug: 118885128
Test: Tested manually on device
Change-Id: I68289cb5ed22e66532847758c36155a4ce607bbc
2018-11-26 23:19:00 +00:00
Sundong Ahn
50cd1a972d Build com.android.location.provider with java_sdk_library
com.android.location.provider is built with java_sdk_library and api
files are added by running "make update-api".
Remove com.android.location.provider.xml since it will be
make auto generation by soong when the library is built with
java_sdk_library.

Bug:77577799
Test: make -j
Test: make checkapi
Test: adb shell cmd package list libraries |\
      grep com.android.location.provider
      And check the com.android.location.provider library

Change-Id: Iad0b4452fd87716c277235f3da6f3540aafdbed3
2018-06-07 12:08:35 +00:00