ApiLint tries to only lint "new" APIs, i.e. those introduced since the
last frozen API. Using android-non-updatable's last frozen txt does not
work well for this, as it is incomplete API surface on its own, so
metalava cannot see all APIs that were present in the previous API
(such as methods inherited from ART), and so makes the wrong decisions
for which APIs are new.
Bug: 171506470
Test: m checkapi
Change-Id: I00d25f2ae0ba8f0ee6fa8564d86642efd74e0d44
Merged-In: I00d25f2ae0ba8f0ee6fa8564d86642efd74e0d44
(cherry picked from commit 4f90aa5148544f3bf9edebb68e02966f69a3ae03)
A package filter was previously applied to just the jarstubs package,
but not the docstubs. This lead to various internal classes appearing in
the public documentation. Fix that to apply the same filter for both.
This removes the following classes from the docs:
android/telephony/PackageChangeReceiver
com/android/net/module/util/CollectionUtils
com/android/net/module/util/ConnectivityUtils
com/android/net/module/util/NetworkCapabilitiesUtils
com/android/net/module/util/NetworkIdentityUtils
com/google/android/collect/Lists
com/google/android/collect/Maps
com/google/android/collect/Sets
com/google/android/gles_jni/EGLConfigImpl
com/google/android/gles_jni/EGLContextImpl
com/google/android/gles_jni/EGLDisplayImpl
com/google/android/gles_jni/EGLImpl
com/google/android/gles_jni/EGLSurfaceImpl
com/google/android/gles_jni/GLImpl
com/google/android/util/AbstractMessageParser
com/google/android/util/AbstractMessageParser$Acronym
com/google/android/util/AbstractMessageParser$FlickrPhoto
com/google/android/util/AbstractMessageParser$Format
com/google/android/util/AbstractMessageParser$Html
com/google/android/util/AbstractMessageParser$Link
com/google/android/util/AbstractMessageParser$MusicTrack
com/google/android/util/AbstractMessageParser$Part
com/google/android/util/AbstractMessageParser$Photo
com/google/android/util/AbstractMessageParser$Resources
com/google/android/util/AbstractMessageParser$Smiley
com/google/android/util/AbstractMessageParser$Token
com/google/android/util/AbstractMessageParser$Token$Type
com/google/android/util/AbstractMessageParser$TrieNode
com/google/android/util/AbstractMessageParser$Video
com/google/android/util/AbstractMessageParser$YouTubeVideo
com/google/android/util/Procedure
com/google/android/util/SmileyParser
com/google/android/util/SmileyResources
Bug: 187386774
Test: diff framework-doc-stubs/../api-versions.xml before and after
Change-Id: I85b1485b4c5bc1b30a5d537e96d961382f298fb7
Like the jar stubs, the doc stubs need modularization to avoid depending
on module sources and instead being assembled by merging the doc stubs
of the constituent modules. This will allow generating e.g. the lint
database, annotation zips, and the documentation itself from prebuilts
(which in turn allows mixing e.g. non-updatable R with the latest
modules).
Move the defaults for the non-updatable jar stubs to the shared bp file
and reuse it for the non-updatable doc stubs, and add two targets for
the public and the system stubs.
Bug: 186197911
Test: m android-non-updatable-doc-stubs{,-system}
Merged-In: Ic2cef748c42c141ea42b8cd7b4afd7ee78a1399d
Change-Id: Ic2cef748c42c141ea42b8cd7b4afd7ee78a1399d
Use the stubs obtained by merging the system server stubs from
non updatable code in the system server, and the system server apis
exposed by mainline modules in SYSTEMSERVERCLASSPATH.
Test: builds
Bug: 177640454
Change-Id: I3687aeb0a4905418d07c819f1091266aaf708558
These default need to be used by the module sdk repo, which doesn't
want to depend on frameworks/base. Move the defaults over there, and
give them a more obvious name at the same time.
Bug: 184839225
Test: m nothing
Change-Id: I543a0abad101fbaf2dae7486aadcb2c963842dc4
These notices are now included in the art stub itself.
Bug: 173186484
Bug: 184839599
Test: m android_stubs_current && unzip -l | grep NOTICE
Change-Id: I0cfbedd729ed1178297674b5d589205d1f942abe
So that it is recorded when we finalize the SDK.
Bug: 184839599
Test: (cd out/dist; diff -r apistubs /tmp/apistubs-before)
Only in apistubs/android/module-lib: android-non-updatable.jar
Only in apistubs/android/public: android-non-updatable.jar
Only in apistubs/android/system: android-non-updatable.jar
Only in apistubs/android/test: android-non-updatable.jar
Change-Id: I8fe2d46b4574e602f258ab6f941e07443dfdd2a7
The java stubs for android-non-updatable were previously only compiled
into the "main android stubs" target. This change refactors the build so
that we compile android-non-updatable stubs as a separate jar file. That
jar is then statically included into the main android stubs, making it
effectively a noop for the existing stub.
This has the benefit of making it possible to finalize the
android-non-updatable when the rest of the SDK artifacts are frozen,
so that we can later re-create android.jar with a mix of different
android-non-updatable and module stubs.
Bug: 184839599
Test: `m sdk dist` && diff -r out/apistubs{before,after}
Change-Id: I624e2e7ab5723eb5e27cf26dbe247aac2a799b72
This simplifies management of the build rules across different branches
that may have different lists of modules.
Additionally, we dedupe the list of module system stubs.
Bug: 184839225
Test: m
Merged-In: Ibef1fb686305b5b1b50811b7d1c6d677d07d7177
Change-Id: Ibef1fb686305b5b1b50811b7d1c6d677d07d7177
hwbinder.stubs and hwbinder-stubs-docs use SystemApi annotations.
Provide an explicit definition of SystemApi to metalava by adding
framework-annotations-libs to libs so it doesn't find it on its
own without a dependency. Replace stub-annotations with
framework-annotations-libs in hwbinder.stubs for consistency.
Bug: 153703940
Test: m hwbinder.stubs
Change-Id: I777d68e446f8c7c1064667fd7c07b1e2ee6bfb1b
The annotations in srcs aren't doing anything because they are all
@hide. The only thing keeping hwbinder-stubs-docs compiling is
a hack in metalava that treats anything with
hwbinder-stubs-docs-stubs.srcjar.rsp in its input files as
effectively having annotations_enabled: false.
Remove the unnecessry srcs, and add stub-annotations, which contains
a stub definition for android.annotation.NonNull, to hwbinder.stubs.
None of the rest of the annotations in srcs are used in the
generated stubs.
Test: m hwbinder.stubs
Change-Id: I7ec9afb41ea9617f25d1dffd3382fed90997b751
Split out connectivity APIs to connectivity module directories. This
prepares future move of the connectivity code into a mainline module,
but still keeps it implemented by framework-minus-apex for now: the API
stubs are moved to framework-connectivity.stubs, but the implementation
on device remains in the same place.
This allows moving the connectivity code in/out of APEX with minimal
changes.
BYPASS_INCLUSIVE_LANGUAGE_REASON=Moving files, can't modify released API
Bug: 171540887
Test: device boots, connectivity working
Merged-In: I21c42f032efa6c10e36c749df3183ce9679303a7
(cherry-pick from internal branch with API files conflicts)
Change-Id: I21c42f032efa6c10e36c749df3183ce9679303a7
This CL is required for converting IKE from a shared library to
a jar in the boot classpath.
Bug: 177266501
Test: build, flash, boot
Change-Id: I10759d22eaba4861b7d7f283b551156f09f54675
Merged-In: I10759d22eaba4861b7d7f283b551156f09f54675
...in order to be able to resolve IKE classes. Note that this can be
removed once the prebuilt stub in prebuilts/sdk contains IKE, which
can be achieved with a new import after this CL is submitted:
I10759d22eaba4861b7d7f283b551156f09f54675
Bug: 177266501
Test: m
Change-Id: I7229b1486e7170acca5da8f1b7874e5eaaecb1db
The previous incompatibilities genrule targets have been replaced
by targets auto-generated by prebuilt_sdks.
The intentention of this change is to eventually have per-jar file
incompatibilities tracking, but this change does not change the
underlying file used, only switching to the new target.
Bug: 178171189
Test: m
Change-Id: Ib5a2be7d53e3576d92db4c843f1fca829b9bfc6d
Add disting of the following for the sdk:
- android-non-updatable.txt
- android-non-updatable-removed.txt
- removed.txt
Bug: 158544979
Test: m sdk dist && inspect out/dist/apistubs
Change-Id: I5f628f4fcfc13f67105ee3b2760274e900fc1e34
Stop tracking the ART APIs in the non-updatable current.txt, and
instead add in the txt/srcjar/jar files produced by the art module's
java_sdk_library.
Bug: 173606718
Test: manual last_released check of merged api txt (b/174847574 to
automate)
Change-Id: I446a381f2b364a114ce391b99a13742d6769f14d
These were used temporarily before merged stubs were ready,
but they are not used anymore.
Test: m
Change-Id: I517f64353749ffd8d92b8ddbc1dd8b7af75f2176
We're working on moving the libcore classes away from srcs and into the
classpath, and ignoring classes on the classpath will cause incorrect
API signatures once that happens (several libcore classes appear in
public API signatures).
Keep the docs building in the same way they were before. They will be
addressed in separate CLs.
Bug: 173606718
Test: m checkapi
Change-Id: I471327c3657662d7a093e9baa2fb6e08d640f895
This removes the i18n source from the non-updatable stubs which removes
them from the frameworks/base/core/api files too. The API is still
protected by both the build and Gerrit review as the API is specified
in the external/icu/android_icu4j/api/public/ directory.
The i18n stubs source is used instead of the implementation source for
generating the JavaDoc. That revealed a minor issue with metalava which
is fixed in this topic.
The i18n stubs library was statically included alongside the conscrypt
stubs library so it will still appear in the monolothic android.jar.
Bug: 174344410
Test: m offline-sdk-docs
- check that i18n classes are present
m android_stubs_current android_system_stubs_current android_test_stubs_current
- check that i18n classes are present in each jar
m droid
Change-Id: I744c8bac54a8a5518ca0eca2a7700abbfa0997f4
Add indication APIs to expose Quality Of Service (QOS) information
from LTE and NR default as well as dedicated bearers. The QOS is
added to the existing SetupDataCallResult structure so that the
baseband can notify whenever there is a change in QoS on a PDN.
Bug: 158315614
Test: 1) Simulated V1_6 SetupDataCallResult and verified the Qos objects
are passed correctly in the APIs
2) atest frameworks/opt/telephony/tests/telephonytests/
Merged-In: I29b13975288286d9706a1c3fb227eeb46527efc3
Change-Id: I29b13975288286d9706a1c3fb227eeb46527efc3
The change I41b38d4828f8dc5d90dbb3ae59462812b8c036f2 accidentally
started disting the public android.jar to the path where the system
android.jar is expected.
Move the dist rules from the public stubs to the system stubs where
they belong.
Bug: 172937217
Test: m sdk dist && \
zipinfo out/dist/apistubs/android/system/android.jar | \
fgrep telecom/Phone.class
Change-Id: If20cb4ec32e1eb631a824ecc180d33c5088ff7c8
- Merge the "full" defaults into the "base" defaults (base wasn't used)
- Reword some comments
- Fix double mention of priv_apps @SystemApi annotation in a droidstub
Test: m checkapi
Change-Id: Ide93b0f6076fec733f5a01b7fccbf280d5a8d0f6
Merged-In: Ide93b0f6076fec733f5a01b7fccbf280d5a8d0f6
Remove the build rule for updating api/current.txt and other files,
which makes it easier to remove the txt files themselves.
Bug: 171029603
Test: m nothing
Change-Id: I987fd9f6075d0f7c6817f16bf7282c6239afb7db
Nothing consumes the output of this module anymore. The txt files
themselves will be removed in a follow-up change (it is easier after
this build rule stops them changing all the time).
Bug: 171029603
Test: m checkapi with txts removed
Change-Id: Iac487dd6c62504b33cf4e372ba4a7cf9808bf5fc
The other non-updatable API files are in core/api/*. Also add
-non-updatable to the module to match the others.
Bug: 171029603
Test: m checkapi
Change-Id: I2bd1fa5bac6b35096b3059f93d68ef24b7a464e5
Merged-In: I2bd1fa5bac6b35096b3059f93d68ef24b7a464e5
(cherry picked from commit 3a1b1bd620454dd1d5b328c98634a567865cd55e)
Nothing depends on these. They were only here for easy comparison
with the merged variant while we ironed out diffs.
Rename the merged variants instead of having duplicate compilation
rules.
Bug: 171029603
Test: m nothing
Change-Id: I7859589b93b861439fb1b7de084e52294da53671
Merged-In: I7859589b93b861439fb1b7de084e52294da53671
This achieves two things:
- it's been noted that non-updatable-api is a confusing term as it has
to be updated every time the API changes
- the api-review logic trigers on txt files in subdirs named 'api',
which non-updatable-api does not trigger on
I will (less urgently) try to get rid of the term "non-updatable" from
other places too, perhaps going for "non-module" or "core" as a
replacement.
Bug: 171029603
Test: m checkapi
Change-Id: I843efb4880b6caaf3872e9b0918fd710fb93d979
Merged-In: I843efb4880b6caaf3872e9b0918fd710fb93d979
This target existed just to track the "full" module lib API surface,
until the individual pieces had the same standards. However, now:
- the full current.txt file is available as a build target
- all the individual .txt files are API reviewed, checked against
last api, linted, and changes result on API council bug updates
The .txt files will be removed in a separate CL.
Bug: 171029603
Test: m checkapi
Change-Id: Ib8ec547871045f77fb73aa82f192b5a7767d0c33
Previously all droidstubs modules were classified as highmem. Annotate
only the huge modules as such, to allow more parallelization of lowmem
droidstubs modules.
Bug: 170701554
Test: NINJA_HIGHMEM_NUM_JOBS=3 m checkapi
Change-Id: I83ae88222110d7afe4009076e951c88a5188ca83
This makes it impossible to add new @TestApi in modules, of which
there are none right now and we don't want any going forwards, either.
Bug: 170395679
Test: m test-api-stubs-docs-check-current-api
Change-Id: I527ca7b580350372bee72b65f6596a46eab2ce04
Merged-In: I527ca7b580350372bee72b65f6596a46eab2ce04