Status Update
Comments
en...@google.com <en...@google.com> #2
Tentatively, the annotation should be something use-case-specific like @OutlinedNewApi
that allows alternative build systems (e.g. not R8/D8) to make their own decisions. We'll provide a default Proguard configuration for R8, but it's not guaranteed this will work as intended -- outlining is automatic in newer versions, but it may be disabled.
st...@gmail.com <st...@gmail.com> #3
Just as an FYI, this was enabled in AGP 2 years ago (AGP 7.3 as far as I remember), ag/18426192, so for AGP users it might fine to just remove the rule for @DoNotInline
. I like the @OutlinedNewApi
to make it clear what this is for other consumers to handle it as they see fit.
en...@google.com <en...@google.com>
lo...@gmail.com <lo...@gmail.com> #4
Given the failure mode can include run-time crashes, that's not an acceptable level of usage.
en...@google.com <en...@google.com> #5
I think you can still include a top-level proguard.txt
, and it will be used by versions that do not support the com.android.tools
format. E.g.
jo...@gmail.com <jo...@gmail.com> #7
Looping in from offline, any new libraries require a high enough compileSdk
that we're going to see a recent-enough AGP. So, we should just remove our manual outlining and use of @DoNotInline
.
jo...@gmail.com <jo...@gmail.com> #8
Branch: androidx-main
commit 0c5446468c1e1fc08b1cea04dc57b05c52417ce8
Author: Alan Viverette <alanv@google.com>
Date: Tue Jul 02 13:50:59 2024
Disable class verification failure lint checks
They are no longer needed since we transitively require AGP 8.1.
Bug: 345472586
Test: ./gradlew lintDebug
Change-Id: Icb6ad18297fef4a23071cd849b6e84855d2becd0
M lint-checks/src/main/java/androidx/build/lint/AndroidXIssueRegistry.kt
ke...@gmail.com <ke...@gmail.com> #9
Branch: androidx-main
commit 722ebe758557abaf7409c052bb2f326782369c84
Author: Alan Viverette <alanv@google.com>
Date: Tue Jul 02 14:05:38 2024
Remove usage of @DoNotInline for manual NewApi outlines (R thru W)
We no longer need manual NewApi outlines, so we can start by letting the
compiler inline the static methods.
Relnote: """Removed manual outlining of access to new platform APIs
since this happens automatically via API modeling when using R8 with
AGP 7.3 or later (e.g. R8 version 3.3) and for all builds when using
AGP 8.1 or later (e.g. D8 version 8.1). Clients who are not using
AGP are advised to update to D8 version 8.1 or later. See
[this article](
for more details."""
Bug: 345472586
Test: ./gradlew bOS
Change-Id: Ia60e0ab9f0fd613883a772c8aa34e27cc986cae8
M recyclerview/recyclerview/src/main/java/androidx/recyclerview/widget/GridLayoutManager.java
M samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/MainActivity.java
M samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/activities/systemrouting/source/AudioManagerSystemRoutesSource.java
M samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/player/Player.java
M samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/providers/SampleMediaRouteProvider.java
M security/security-crypto/src/main/java/androidx/security/crypto/MasterKey.java
M security/security-identity-credential/src/main/java/androidx/security/identity/HardwareIdentityCredential.java
M slice/slice-core/src/main/java/androidx/slice/Slice.java
M slice/slice-core/src/main/java/androidx/slice/compat/SliceProviderCompat.java
M sqlite/sqlite-framework/src/androidMain/kotlin/androidx/sqlite/db/framework/FrameworkSQLiteDatabase.android.kt
M test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/AccessibilityNodeInfoDumper.java
M test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/ByMatcher.java
M test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiDevice.java
M test/uiautomator/uiautomator/src/main/java/androidx/test/uiautomator/UiObject2.java
M testutils/testutils-runtime/src/main/java/androidx/testutils/AndroidFontScaleHelper.kt
M text/text/src/main/java/androidx/compose/ui/text/android/BoringLayoutFactory.android.kt
M text/text/src/main/java/androidx/compose/ui/text/android/PaintExtensions.android.kt
M text/text/src/main/java/androidx/compose/ui/text/android/StaticLayoutFactory.android.kt
M text/text/src/main/java/androidx/compose/ui/text/android/TextAndroidCanvas.android.kt
M text/text/src/main/java/androidx/compose/ui/text/android/TextLayout.android.kt
M text/text/src/main/java/androidx/compose/ui/text/android/selection/SegmentFinder.android.kt
M tracing/tracing/src/main/java/androidx/tracing/TraceApi29Impl.java
M transition/transition/src/main/java/androidx/transition/CanvasUtils.java
M transition/transition/src/main/java/androidx/transition/GhostViewHolder.java
M transition/transition/src/main/java/androidx/transition/ImageViewUtils.java
M transition/transition/src/main/java/androidx/transition/ObjectAnimatorUtils.java
M transition/transition/src/main/java/androidx/transition/PropertyValuesHolderUtils.java
M transition/transition/src/main/java/androidx/transition/Transition.java
M transition/transition/src/main/java/androidx/transition/TransitionUtils.java
M transition/transition/src/main/java/androidx/transition/ViewGroupUtils.java
M transition/transition/src/main/java/androidx/transition/ViewUtilsApi19.java
M transition/transition/src/main/java/androidx/transition/ViewUtilsApi21.java
M transition/transition/src/main/java/androidx/transition/ViewUtilsApi22.java
M transition/transition/src/main/java/androidx/transition/ViewUtilsApi23.java
M vectordrawable/vectordrawable-animated/src/main/java/androidx/vectordrawable/graphics/drawable/AnimatedVectorDrawableCompat.java
M versionedparcelable/versionedparcelable/src/main/java/androidx/versionedparcelable/VersionedParcel.java
M wear/protolayout/protolayout-expression-pipeline/src/main/java/androidx/wear/protolayout/expression/pipeline/NumberFormatter.java
M wear/tiles/tiles/src/main/java/androidx/wear/tiles/TileService.java
M wear/watchface/watchface-complications-data/src/main/java/androidx/wear/watchface/utility/TraceEvent.kt
M wear/wear-remote-interactions/src/main/java/androidx/wear/remote/interactions/RemoteInteractionsUtil.kt
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForM.java
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForN.java
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForO.java
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForOMR1.java
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForP.java
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForQ.java
M webkit/webkit/src/main/java/androidx/webkit/internal/ApiHelperForTiramisu.java
M window/window/src/main/java/androidx/window/embedding/ExtensionEmbeddingBackend.kt
M window/window/src/main/java/androidx/window/embedding/SplitRule.kt
M window/window/src/main/java/androidx/window/layout/util/ContextCompatHelper.kt
M work/work-multiprocess/src/main/java/androidx/work/multiprocess/parcelable/ParcelableRuntimeExtras.java
M work/work-runtime/src/main/java/androidx/work/impl/WorkDatabasePathHelper.kt
M work/work-runtime/src/main/java/androidx/work/impl/WorkManagerImpl.java
M work/work-runtime/src/main/java/androidx/work/impl/background/systemjob/SystemJobService.java
M work/work-runtime/src/main/java/androidx/work/impl/foreground/SystemForegroundService.java
M work/work-runtime/src/main/java/androidx/work/impl/utils/DurationApi26.kt
M work/work-runtime/src/main/java/androidx/work/impl/utils/NetworkApi21.kt
M work/work-runtime/src/main/java/androidx/work/impl/utils/NetworkApi23.kt
M work/work-runtime/src/main/java/androidx/work/impl/utils/NetworkApi24.kt
M work/work-runtime/src/main/java/androidx/work/impl/utils/NetworkRequestCompat.kt
M work/work-runtime/src/main/java/androidx/work/impl/utils/ProcessUtils.kt
to...@omnisol.co.il <to...@omnisol.co.il> #10
Branch: androidx-main
commit a3c2cdfa79630ce1b6ccfae79068b331bd86889f
Author: Alan Viverette <alanv@google.com>
Date: Tue Jul 02 14:07:44 2024
Remove fully-qualified usages of @DoNotInline for manual NewApi outlines
We no longer need manual NewApi outlines, so we can start by letting the
compiler inline the static methods.
Relnote: """Removed manual outlining of access to new platform APIs
since this happens automatically via API modeling when using R8 with
AGP 7.3 or later (e.g. R8 version 3.3) and for all builds when using
AGP 8.1 or later (e.g. D8 version 8.1). Clients who are not using
AGP are advised to update to D8 version 8.1 or later. See
[this article](
for more details."""
Bug: 345472586
Test: ./gradlew bOS
Change-Id: I5921633fee80fcbc2c6ee05cb94f5fab0b9a6daf
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidGraphicsContext.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidPaint.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidRenderEffect.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/AndroidGraphicsLayer.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV23.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsLayerV29.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/GraphicsViewLayer.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerManager.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/layer/LayerSnapshot.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/RenderNodeApi23.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/RenderNodeApi29.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/RenderNodeLayer.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/ViewLayer.android.kt
M graphics/graphics-core/src/main/java/androidx/graphics/CanvasBufferedRendererV29.kt
M graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/BufferTransformHintResolver.kt
M graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/FrontBufferUtils.kt
M graphics/graphics-core/src/main/java/androidx/graphics/lowlatency/LowLatencyCanvasView.kt
M graphics/graphics-core/src/main/java/androidx/graphics/surface/SurfaceControlCompat.kt
M graphics/graphics-core/src/main/java/androidx/graphics/surface/SurfaceControlV33.kt
M graphics/graphics-core/src/main/java/androidx/hardware/SyncFenceCompat.kt
M leanback/leanback/src/main/java/androidx/leanback/widget/GuidedActionsStylist.java
dw...@digi-prex.com <dw...@digi-prex.com> #11
Remaining work:
- Get the last few
@DoNotInline
CLs merged - Inline existing
NewApi
classes- Or don't? Users running R8 won't see a difference, users not running R8/D8 will get VFY errors
- Write a lint auto-fix to automate this?
Description
In some cases, I delete a marker (with a custom image) with setMap(null) and the marker disappear. If I zoom the map the marker reappear.
If, instead of remove it, I change position, zooming the map I see 2 marker: one in the old position and one in the new position.