Commit Graph

58 Commits

Author SHA1 Message Date
Mathew Inwood
5f0edaaaf5 Add maxTargetSdk restriction to unused APIs.
These are APIs that have @UnsupportedAppUsage but for which we don't
have any evidence of them currently being used, so should be safe to
remove from the unsupported list.

Bug: 170729553
Test: Treehugger
Merged-In: I8285daa8530260251ecad6f3f38f98e263629ca7
Change-Id: I626caf7c1fe46c5ab1f39c2895b42a34319f771a
2020-11-02 10:30:09 +00:00
Anton Hansson
dd7d52f963 Remove @TestApi from @SystemApi symbols
I ran these commands:
    cd frameworks/base
    grep -rl '@TestApi' --include '*.java' | xargs perl -i -p0e \
        's/\@SystemApi[\s\n]+(\@\w+[\s\n]+)?\@TestApi/\@SystemApi\1/gs'
    grep -rl '@TestApi' --include '*.java' | xargs perl -i -p0e \
        's/\@TestApi[\s\n]+(\@\w+[\s\n]+)?\@SystemApi/\1\@SystemApi/gs'

Bug: 171179806
Test: m checkapi
Change-Id: I772790b783b0a8730b8bf680c9e569a886b8d789
Merged-In: I772790b783b0a8730b8bf680c9e569a886b8d789
2020-10-19 16:41:01 +01:00
Soonil Nagarkar
39766392a7 DO NOT MERGE Refactor appops across location
-Add a new app ops helper to make testing easier.
-Consolidate app identity within CallerIdentity class.
-Remove location age restriction for coarse locations, was a bit
arbitrary.
-Remove listener identifiers from LM. These were not being properly
propagated and add a lot of binder overhead with what appears to be
little benefit since we have featureIds, which contain much better
information.
-Remove appops checks from some GNSS APIs that shouldn't require it.
-Move location fudger into location providers and reset them after mock
providers are used so that offset information cannot be leaked.

Bug: 149375028
Test: presubmits + manual
(cherry picked from commit 6033344baa)
Change-Id: I18e2cf3c39836f31d28180e1a4613df4ad675ab7
2020-03-28 13:59:26 -07:00
Soonil Nagarkar
77a9227b19 Fix work profile handling across location
There were a couple problems with work profile state in location. First,
we assumed that notifications sent to parent users would also be sent to
profiles but this is not true. Second we had assumed location status in
profiles was always identical to the parent user, but work profiles may
have user restrictions applied which are not present on the parent user.
The easiest way to handle these issues seems to be to expand LMS user
handling to deal with all users, rather than making various assumptions
which may or may not be true.

This also means we need to store last locations on a per profile basis.
Since we're refactoring how last location works completely, we also
removed the special NO_GPS handling for last locations. With the new
permission strings we now no longer have to exclude gnss based location
from coarsening. This lets us:

1) deprecate and remove various constants and methods use for storing
coarse locations tied to fine locations
2) substantially simplify code that calculated coarse location

This also exposed numerous bugs in the location service where we were
using the current user's state instead of the calling user's state,
which could have exposed the current user's location to other users
inappropriately.

Bug: 148798374
Bug: 146071833
Test: presubmits + manual
Change-Id: I2d3216a9fb58b73d0124d563b05de8870b70b716
2020-02-11 14:04:39 -08:00
Soonil Nagarkar
56a2a44537 Remove setLocationExtra per API feedback
Bug: 142828735
Test: atest LocationManagerFineTest
Change-Id: I73193dc2484a2b8051c5cff42cd3fcec9a44a015
2020-01-24 13:32:26 -08:00
Artur Satayev
53fe96661b Use new UnsupportedAppUsage annotation.
Existing annotations in libcore/ and frameworks/ will deleted after the migration. This also means that any java library that compiles @UnsupportedAppUsage requires a direct dependency on "unsupportedappusage" java_library.

Bug: 145132366
Test: m && diff unsupportedappusage_index.csv
Change-Id: I4bc8c9482e4bb1af21363f951affff7ee3fefeab
2019-12-18 15:42:06 +00:00
David Castro
5df37b4e9b Merge "Updates the description of the provider parameter as per feedback in BUG:111695926." into qt-dev am: e3681d08e9 am: 0c8d339950 am: b69d94a847
am: d52dd84fbf

Change-Id: Ia9ce650cb5d061d636ed0b6f21ed101fd0a5c9f5
2019-11-24 04:58:51 -08:00
David Castro
46676918a1 Updates the description of the provider parameter as per feedback in
BUG:111695926.

Change-Id: I74fa22d7733d06616be44da3923649271584090c
2019-11-21 16:53:21 +00:00
Soonil Nagarkar
88be6bf15c Update javadocs as per API council feedback
Bug: 142715945
Test: n/a
Change-Id: I0a7149c144a2f660bb135efe0d32ed625b40d90b
2019-10-15 15:15:58 -07:00
Soonil Nagarkar
79c47e27fe Expose NO_GPS_LOCATION APIs to system and test
These APIs are required for use by CTS tests and location providers.

Bug: 142481153
Test: manual
Change-Id: I09815477c2ac822a310b360145c8297170d24150
2019-10-11 11:30:45 -07:00
TreeHugger Robot
433bb84545 Merge "Adding documentation to getElapsedRealtimeUncertaintyNanos following api council guidance." into qt-dev 2019-04-08 17:13:58 +00:00
Yu-Han Yang
f85b047705 Merge "Change elapsedRealtimeUncertaintyNanos from long to double" into qt-dev am: 5589916a5d
am: da6ea54597

Change-Id: Ia6ccdb35e881bcbe17bc64318bd32c7514da3349
2019-04-05 22:42:12 -07:00
Pierre Fite-Georgel
d017319f57 Adding documentation to getElapsedRealtimeUncertaintyNanos following api council guidance.
Test: N/A comment only
Bug: 129769397
Change-Id: I906494b0b72898149322959f5900626a12d6d86b
(cherry picked from commit d6d4d1efa2)
2019-04-06 00:44:46 +00:00
Yu-Han Yang
3cd9a8631c Change elapsedRealtimeUncertaintyNanos from long to double
Bug: 129166160
Fixes: 129166160

Test: builds and existing tests passed
Change-Id: I948382a9e486b8ddc1ba6a9fe0fd9bb88e9bfb71
2019-04-05 23:23:51 +00:00
Pierre Fite-Georgel
d6d4d1efa2 Adding documentation to getElapsedRealtimeUncertaintyNanos following api council guidance.
Test: N/A comment only
Bug: 129769397
Change-Id: I906494b0b72898149322959f5900626a12d6d86b
2019-04-05 15:18:05 -07:00
Tyler Trephan
6c58d5b2df Fix bug setting the 9th bit of a mFieldsMask byte.
Fix: 127516341
Test: Passed LocationTest CTS test.
Change-Id: Ib56daccd33e6362434e466211236a5eb4d3a4610
2019-03-12 16:42:37 -07:00
Pierre Fite-georgel
19f6cbfec9 Revert "Revert "This CL introduces new member variable on android.location.Location (see api/current.txt).""
This reverts commit cef1e80327.
AND
Fixing typo that fix a failure b/127312065

Test:  atest CtsGraphicsTestCases:android.graphics.cts.BitmapFactoryTest#testDng -- --abi x86
Bug: 127312065

Change-Id: I96657adb54c33ceb92f25896bb5b6bdaa19e902c
2019-03-04 15:30:57 -08:00
Colin Cross
0e9cf5151a Merge "Revert "This CL introduces new member variable on android.location.Location (see api/current.txt)."" 2019-03-04 23:19:58 +00:00
Colin Cross
cef1e80327 Revert "This CL introduces new member variable on android.location.Location (see api/current.txt)."
This reverts commit 9e96c57083.

Reason for revert: b/127312065

Change-Id: I8e7248efd74f2a4e6b0a491e5afe03568214cd23
2019-03-04 23:17:53 +00:00
Pierre Fite-georgel
bbc8ad9991 Merge "This CL introduces new member variable on android.location.Location (see api/current.txt). In this CL, I pushed location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos()); (from Java)" 2019-03-02 02:36:30 +00:00
Pierre Fite-Georgel
9e96c57083 This CL introduces new member variable on android.location.Location (see api/current.txt).
In this CL, I pushed
   location.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos()); (from Java)

Test: This patchset include a CTS test for location.java changes.
Bug: 121353225
Change-Id: I606e23175e2fb6405660ed032b41c9996f1ba0c8
2019-03-01 15:20:21 -08:00
Jeff Sharkey
9e8f83db6d All Parcelable CREATOR fields are @NonNull.
If they were null, then the Parcelable would fail to work.

Bug: 126726802
Test: manual
Change-Id: I7929ffa2f20e5de1c8e68e8263cca99496e9d014
Exempt-From-Owner-Approval: Trivial API annotations
2019-02-28 23:29:04 -07:00
Mathew Inwood
31755f94e1 Limit access to suspected false positives.
Members modified herein are suspected to be false positives: i.e. things
that were added to the greylist in P, but subsequent data analysis
suggests that they are not, in fact, used after all.

Add a maxTargetSdk=P to these APIs. This is lower-risk that simply
removing these things from the greylist, as none of out data sources are
perfect nor complete.

For APIs that are not supported yet by annotations, move them to
hiddenapi-greylist-max-p.txt instead which has the same effect.

Exempted-From-Owner-Approval: Automatic changes to the codebase
affecting only @UnsupportedAppUsage annotations, themselves added
without requiring owners approval earlier.

Bug: 115609023
Test: m
Change-Id: I020a9c09672ebcae64c5357abc4993e07e744687
2018-12-28 11:50:04 +00:00
Mathew Inwood
735497ed3e Add @UnsupportedAppUsage annotations
For packages:
  android.location

This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.

Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@

Bug: 110868826
Test: m
Change-Id: I2e49951f49072866906ecb8fba133ff16293e65a
2018-08-09 16:44:32 +01:00
Wei Wang
25bc14e91f Improve document for Location#setExtras(Bundle).
Bug: 69682430
Test: it compiles
Change-Id: I4e2d0ab05faa8cd8c08cd19b130a1022ae1068f0
2018-05-21 19:26:12 -07:00
Philip P. Moltmann
33115156f9 Expose APIs used by CtsPermissionTestCases
Test: atest CtsPermissionTestCases
Bug: 77604428
Change-Id: Ib5e9b678e98aab86dac90610ed071eb89f14fce9
2018-04-26 09:40:57 -07:00
Wyatt Riley
818347f056 Fixing javadoc typo from gerrit 3027804
Bug: 65369254
Test: Automated build/sanity only - just a comment change
Change-Id: I819b2f11f91454719269927ae93382253170938e
2017-10-31 14:12:27 -07:00
Wyatt Riley
252e0908bd Location & GNSS Measurement Documetation Fixes
Clarifying documenation of SNR, Vertical Accuracy, and
Accumulated Delta Range.

Change-Id: I2684c57e0f4aff2925549e01cbe4f546910f93e0
Fixes: 65369254
Test: Builds (comments only)
2017-10-18 15:27:30 -07:00
Wyatt Riley
70e34ce4c5 Correcting Speed and Bearing Uncertainty Doc
Test: Build by treehugger, code review as comments only.
Change-Id: Ib072bf42c51af8e91ae7554097e839316956dea1
2017-08-31 08:47:24 -07:00
Wyatt Riley
43336af356 Remove misleading Location Accuracy comment
Test: Treehugger to verify build (comment only)
Change-Id: Iea3c473219e21a58b01e613d14700d6972f5cce6
2017-08-08 15:24:44 -07:00
Yu Liu
b87243cb43 Remove newly added remove methods in Location and deprecate the old ones, this is the request from the android API council
Test: Existing unit tests still pass.
BUG: 36552859

Change-Id: Ib4cdcef90be3d5b3be329dd780bcb40275b89ef4
2017-04-18 16:12:16 -07:00
gomo
127ba323d9 Unhide public methods for API Council review.
Test: Existing unit tests still pass.
Change-Id: I49b81f99e4e8d8300fbc6b3d74f336d4f291d171
2017-01-18 19:48:28 -08:00
gomo
4402af6be9 GNSS O Features according to go/o-gps-hal
Added "Tow Known" as a possible gnss measurement state. As well added Automatic Gain Control (AGC)
to allow jammer detection. Also added the GNSS carrier frequeny to SV status. Also added vertical
GPS position uncertainty, speed uncertainty and bearing uncertainty. Also propagate locaton new
fields to geofence engine.
Test: Existing unit tests still pass.

Change-Id: I472b2fd2516cb7614877dea4bb054a34f50844dc
2017-01-15 18:02:21 -08:00
Jeff Sharkey
a04c7a7c64 Mark more Bundles as being defusable.
They're destined for the system, so they're okay to look inside.

Bug: 27726127
Change-Id: Ic85c308a8efe6f9b8652952717c72b3c663d328a
2016-03-18 12:20:39 -06:00
David Christie
923b260258 Make Location objects take less memory.
-Use bitmask for has*** methods.
-Use ThreadLocal for caching intermediate computations
 rather than preallocating memory in every Location

Change-Id: If2fa17bfd59511ec0b809f4b7d7cd8028360c340
2015-10-27 18:09:53 -07:00
David Christie
5575ddfcc1 Correct range checking for location strings during conversion
Minute values in the range [0, 59] are valid if seconds are
present. If seconds are not present then minute values are
valid in the range [0, <60]

Second values are valid in the range [0, <60]

Examples:
50:59:59.99999 is valid
50:59.99999 is valid
50:59.1:1 is not valid

Patch taken from Motorola: partner gerrit 137210

Bug: 17958582
Change-Id: I0d1265534092157883af564119f723984362d436
Issues: 2667 and 2668
2015-10-27 14:13:03 -07:00
Soonil Nagarkar
71f0cd45ef Update Location.convert() javadocs to reflect their inconsistency with locales.
The Location.convert() methods do not invert each other as might be
expected. Changing this would introduce breaking changes, so I've
updated the javadocs to make this clearer.

Bug: 13280976
Change-Id: If4bd3c83d5fb67915450849ca471aabc27544dac
2015-01-30 11:29:42 -08:00
David Christie
c20b795cf0 Add @SystemApi annotations to methods used by GmsCore.
-Currently these methods are called using reflection for location.
Bug: 17371392
Change-Id: I6546f5b485415beff69164ba0d526757ee831f69
2014-09-04 20:53:21 +00:00
David Christie
552bd68c2c Update Location documentation for altitude (WGS84 instead of sea level).
Change-Id: I9531fba75bc1fee7d0e7c1dc179e3d05fb3e8a42
2014-06-17 13:46:30 -07:00
Victoria Lease
54ca7aef2e Annotate Locations coming from mock providers
LocationManagerService now annotates incoming Location objects that
have come from mock location providers. The new isFromMockProvider()
method can be called on any Location to determine whether the
provider that supplied the Location was a mock location provider.

Bug: 6813235
Change-Id: Ib5140e93ea427f2e0b0036151047f87a02b4d23a
2013-01-22 09:39:47 -08:00
Laurent Tu
7ab7f53892 Hide new location APIs and undeprecate old ones
Hide all new location APIs related to LocationRequest/Geofence and
undeprecate all deprecated APIs consequently to the LocationRequest and
Geofence introduction. Also introduce LocationRequestUnbundled for
LocationProviders to use.

Change-Id: I5b116c7d342041f45b341c88a4b6813571118018
2012-11-01 15:22:22 -07:00
Victoria Lease
779b77455f fix NLP for COARSE applications, build FLP with SDK
In this commit, we provide a means for unbundled location providers
to attach an EXTRA_NO_GPS_LOCATION to the Locations that they report.

We also build FusedLocation against the SDK rather than the internal
tree.

Used in conjunction with I394ded497b8de40d1f85618bff282553cdf378cb
to fix NLP for applications with only ACCESS_COARSE_LOCATION
permission.

Bug: 7453355
Change-Id: Ie696f7abff9ef5237740ab87fe9f537a1c812c54
2012-11-01 13:55:36 -07:00
Philip Milne
4118012da9 Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()
Change-Id: Ie38952bbaace080e81e41e61350cda172951d548
2012-09-26 11:29:25 -07:00
Philip Milne
bc391d58c8 Merge "Revert "Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()"" into jb-mr1-dev 2012-09-24 11:41:53 -07:00
Philip Milne
53fe756772 Revert "Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()"
This reverts commit 2f6d882952

Change-Id: Id5af767a09fc319127c4ebef837c5b7a7f75cb01
2012-09-24 11:38:29 -07:00
Philip Milne
b00df8e929 Merge "Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()" into jb-mr1-dev 2012-09-24 11:02:31 -07:00
Victoria Lease
17e3e9e53c Merge "Do not use passive GPS data for COARSE only apps." into jb-mr1-dev 2012-09-23 15:06:59 -07:00
Philip Milne
2f6d882952 Fix for bug: #7173350. elapsedRealtimeNano() -> elapsedRealtimeNanos()
Change-Id: I71c24ea10093ece07a0780e97bc641ff548c1a44
2012-09-21 15:54:41 -07:00
Victoria Lease
09016ab4dd Do not use passive GPS data for COARSE only apps.
FusionEngine now attaches a secondary location that has never seen
GPS data to its result. LocationFudger uses the GPS-less location so
that COARSE apps never see data from the GPS provider.

When the previous location is updated, the previous GPS-less location
is carried over if the location update was GPS-only.

Additionally, apps without FINE permission are not notified when GPS
location changes, and any attempt to use GPS_PROVIDER without FINE
permission is met by a stern SecurityException.

Bug: 7153659
Change-Id: I12f26725782892038ce1133561e1908d91378a4a
2012-09-21 13:45:41 -07:00
Romain Guy
8a624ef0fe API REVIEW: Undeprecate Location.dump()
Bug #7173109

Change-Id: Ia2f4a5b6255dae7ace4702f7d66ec30a077c9c79
2012-09-21 11:20:00 -07:00