Status Update
Comments
da...@gmail.com <da...@gmail.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.
pm...@google.com <pm...@google.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.
ra...@google.com <ra...@google.com> #4
Given the failure mode can include run-time crashes, that's not an acceptable level of usage.
ap...@google.com <ap...@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.
mu...@gmail.com <mu...@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
.
ra...@google.com <ra...@google.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
mu...@gmail.com <mu...@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
ra...@google.com <ra...@google.com> #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
mu...@gmail.com <mu...@gmail.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?
ey...@gmail.com <ey...@gmail.com> #12
Branch: androidx-main
commit 72d83666a81c444dfc045e292cf52e3ec9c69d8b
Author: Alan Viverette <alanv@google.com>
Date: Tue Jul 02 14:03:53 2024
Remove usage of @DoNotInline for manual NewApi outlines (Cr thru P)
Excludes some privacysandbox libraries because I'm not certain how the
annotation is being used there.
Suppresses flaky PrimitiveInCollection lint failure in Glance.
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: If6b4ccfca0a943b45971a422b58949b13a10bada
M credentials/credentials-play-services-auth/src/main/java/androidx/credentials/playservices/controllers/CreatePublicKeyCredential/PublicKeyCredentialControllerUtility.kt
M credentials/credentials/src/main/java/androidx/credentials/provider/BeginCreateCredentialRequest.kt
M credentials/credentials/src/main/java/androidx/credentials/provider/BeginCreateCredentialResponse.kt
M credentials/credentials/src/main/java/androidx/credentials/provider/BeginGetCredentialRequest.kt
M credentials/credentials/src/main/java/androidx/credentials/provider/BeginGetCredentialResponse.kt
M datastore/datastore/src/androidMain/kotlin/androidx/datastore/migrations/SharedPreferencesMigration.android.kt
M draganddrop/draganddrop/src/main/java/androidx/draganddrop/DropAffordanceHighlighter.java
M drawerlayout/drawerlayout/src/main/java/androidx/drawerlayout/widget/DrawerLayout.java
M emoji2/emoji2/src/main/java/androidx/emoji2/text/ConcurrencyHelpers.java
M emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiExclusions.java
M exifinterface/exifinterface/src/main/java/androidx/exifinterface/media/ExifInterfaceUtils.java
M fragment/fragment/src/main/java/androidx/fragment/app/DefaultSpecialEffectsController.kt
M glance/glance-appwidget/lint-baseline.xml
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/AppWidgetUtils.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/ApplyModifiers.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceAppWidgetManager.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/GlanceRemoteViewsService.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/LayoutSelection.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/RemoteViewsTranslator.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/WidgetLayout.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/action/ActionTrampoline.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/action/ApplyAction.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/CompoundButtonApi31Impl.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/ImageTranslator.kt
M glance/glance-appwidget/src/main/java/androidx/glance/appwidget/translators/TextTranslator.kt
M glance/glance/src/main/java/androidx/glance/session/IdleEventBroadcastReceiver.kt
M glance/glance/src/main/java/androidx/glance/unit/ColorProvider.kt
M health/connect/connect-client/src/main/java/androidx/health/connect/client/HealthConnectClient.kt
M health/connect/connect-client/src/main/java/androidx/health/platform/client/impl/data/SharedMemory27Impl.kt
M input/input-motionprediction/src/main/java/androidx/input/motionprediction/common/PredictionEstimator.java
M leanback/leanback/src/main/java/androidx/leanback/app/FragmentUtil.java
M lifecycle/lifecycle-process/src/main/java/androidx/lifecycle/ProcessLifecycleOwner.kt
M media/media/src/main/java/android/support/v4/media/MediaBrowserCompat.java
M media/media/src/main/java/android/support/v4/media/MediaDescriptionCompat.java
M media/media/src/main/java/android/support/v4/media/session/MediaSessionCompat.java
M media/media/src/main/java/android/support/v4/media/session/PlaybackStateCompat.java
M media/media/src/main/java/androidx/media/AudioFocusRequestCompat.java
M media/media/src/main/java/androidx/media/AudioManagerCompat.java
M media/media/src/main/java/androidx/media/VolumeProviderCompat.java
M media/media/src/main/java/androidx/media/app/NotificationCompat.java
M media/media/src/main/java/androidx/media/session/MediaButtonReceiver.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/SystemOutputSwitcherDialogController.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter2Utils.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouterUtils.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/PlatformMediaRouter1RouteProvider.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/RemotePlaybackClient.java
M mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/RouteListingPreference.java
M preference/preference/src/main/java/androidx/preference/PreferenceCategory.java
M preference/preference/src/main/java/androidx/preference/PreferenceDialogFragment.java
M preference/preference/src/main/java/androidx/preference/PreferenceDialogFragmentCompat.java
M print/print/src/main/java/androidx/print/PrintHelper.java
M privacysandbox/sdkruntime/sdkruntime-client/src/main/java/androidx/privacysandbox/sdkruntime/client/loader/InMemorySdkClassLoaderFactory.kt
M privacysandbox/sdkruntime/sdkruntime-client/src/main/java/androidx/privacysandbox/sdkruntime/client/loader/impl/MigrationUtils.kt
M privacysandbox/sdkruntime/sdkruntime-client/src/main/java/androidx/privacysandbox/sdkruntime/client/loader/impl/SandboxedSdkContextCompat.kt
M privacysandbox/sdkruntime/sdkruntime-client/src/main/java/androidx/privacysandbox/sdkruntime/client/loader/storage/LocalSdkFolderProvider.kt
M privacysandbox/sdkruntime/sdkruntime-core/src/main/java/androidx/privacysandbox/sdkruntime/core/LoadSdkCompatException.kt
M privacysandbox/sdkruntime/sdkruntime-core/src/main/java/androidx/privacysandbox/sdkruntime/core/SandboxedSdkCompat.kt
M privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
M privacysandbox/ui/ui-provider/src/main/java/androidx/privacysandbox/ui/provider/BinderAdapterDelegate.kt
M profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileInstallerInitializer.java
M profileinstaller/profileinstaller/src/main/java/androidx/profileinstaller/ProfileVerifier.java
ra...@google.com <ra...@google.com> #13
Branch: androidx-main
commit 10ffa70a46c505e0af76fc71d93af285f7527bdf
Author: Alan Viverette <alanv@google.com>
Date: Tue Jul 09 11:02:59 2024
Remove usage of @DoNotInline for manual NewApi outlines (Com thru Cor)
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: Ieb9aecd2af5587c5b82833146fee6e912693ab7b
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/EdgeEffectCompat.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/EditorInfo.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/HandwritingGesture.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/InputMethodManager.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/LegacyCursorAnchorInfoBuilder.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/RecordingInputConnection.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/StatelessInputConnection.android.kt
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/input/internal/TextFieldLayoutStateCache.android.kt
M compose/material/material-ripple/src/androidMain/kotlin/androidx/compose/material/ripple/RippleHostView.android.kt
M compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/DynamicTonalPalette.android.kt
M compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/ModalBottomSheet.android.kt
M compose/material3/material3/src/androidMain/kotlin/androidx/compose/material3/internal/AccessibilityServiceStateProvider.android.kt
M compose/test-utils/src/androidMain/kotlin/androidx/compose/testutils/AndroidComposeTestCaseRunner.android.kt
M compose/test-utils/src/androidMain/kotlin/androidx/compose/testutils/ViewCapture.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidColorFilter.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidColorSpace.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidImageBitmap.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/AndroidTileMode.android.kt
M compose/ui/ui-graphics/src/androidMain/kotlin/androidx/compose/ui/graphics/CanvasUtils.android.kt
M compose/ui/ui-test/src/androidMain/kotlin/androidx/compose/ui/test/android/WindowCapture.android.kt
M compose/ui/ui-text-google-fonts/src/main/java/androidx/compose/ui/text/googlefonts/HandlerHelper.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/AndroidFontUtils.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/font/AndroidPreloadedFont.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidAccessibilitySpannableString.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidFontListTypeface.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/extensions/LocaleExtensions.android.kt
M compose/ui/ui-tooling/src/androidMain/kotlin/androidx/compose/ui/tooling/LayoutlibFontResourceLoader.android.kt
M compose/ui/ui/integration-tests/ui-demos/src/main/java/androidx/compose/ui/demos/viewinterop/ViewInterop.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/autofill/AndroidSemanticAutofill.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/autofill/AutofillCallback.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/autofill/AutofillUtils.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/contentcapture/AndroidContentCaptureManager.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/input/pointer/MotionEventAdapter.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidAccessibilityManager.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidClipboardManager.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidFontResourceLoader.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidTextToolbar.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidViewConfiguration.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/res/ColorResources.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/scrollcapture/ScrollCapture.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/text/input/CursorAnchorInfoBuilder.android.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/window/AndroidPopup.android.kt
M compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ContentCaptureSessionCompat.java
M compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewCompatShims.java
M compose/ui/ui/src/main/java/androidx/compose/ui/platform/coreshims/ViewStructureCompat.java
M constraintlayout/constraintlayout-compose/src/androidMain/kotlin/androidx/constraintlayout/compose/MotionLayout.kt
M core/core-animation/src/main/java/androidx/core/animation/PathUtils.java
M core/core-i18n/src/main/java/androidx/core/i18n/DateTimeFormatter.kt
M core/core-ktx/src/main/java/androidx/core/content/res/TypedArray.kt
M core/core-ktx/src/main/java/androidx/core/os/Bundle.kt
M core/core-ktx/src/main/java/androidx/core/os/PersistableBundle.kt
M core/core-location-altitude/src/main/java/androidx/core/location/altitude/AltitudeConverterCompat.java
M core/core-remoteviews/src/main/java/androidx/core/widget/AppWidgetManagerCompat.kt
M core/core-remoteviews/src/main/java/androidx/core/widget/RemoteViewsCompat.kt
M core/core-splashscreen/src/main/java/androidx/core/splashscreen/ThemeUtils.kt
M core/core-telecom/src/main/java/androidx/core/telecom/extensions/CallExtensions.kt
M core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSessionLegacy.kt
M core/core-telecom/src/main/java/androidx/core/telecom/internal/utils/CallAttributesUtils.kt
M core/core-telecom/src/main/java/androidx/core/telecom/internal/utils/EndpointUtils.kt
M core/core-telecom/src/main/java/androidx/core/telecom/internal/utils/Utils.kt
M core/core/src/androidTest/java/androidx/core/location/LocationRequestCompatTestApi19.java
M core/core/src/main/java/androidx/core/app/ActivityCompat.java
M core/core/src/main/java/androidx/core/app/ActivityOptionsCompat.java
M core/core/src/main/java/androidx/core/app/AlarmManagerCompat.java
M core/core/src/main/java/androidx/core/app/AppOpsManagerCompat.java
M core/core/src/main/java/androidx/core/app/DialogCompat.java
M core/core/src/main/java/androidx/core/app/GrammaticalInflectionManagerCompat.java
M core/core/src/main/java/androidx/core/app/LocaleManagerCompat.java
M core/core/src/main/java/androidx/core/app/NotificationChannelCompat.java
M core/core/src/main/java/androidx/core/app/NotificationChannelGroupCompat.java
M core/core/src/main/java/androidx/core/app/NotificationCompat.java
M core/core/src/main/java/androidx/core/app/NotificationCompatBuilder.java
M core/core/src/main/java/androidx/core/app/NotificationManagerCompat.java
M core/core/src/main/java/androidx/core/app/PendingIntentCompat.java
M core/core/src/main/java/androidx/core/app/Person.java
M core/core/src/main/java/androidx/core/app/RemoteActionCompat.java
M core/core/src/main/java/androidx/core/app/RemoteInput.java
M core/core/src/main/java/androidx/core/app/ServiceCompat.java
M core/core/src/main/java/androidx/core/content/ContextCompat.java
M core/core/src/main/java/androidx/core/content/FileProvider.java
M core/core/src/main/java/androidx/core/content/IntentCompat.java
M core/core/src/main/java/androidx/core/content/IntentSanitizer.java
M core/core/src/main/java/androidx/core/content/pm/PackageInfoCompat.java
M core/core/src/main/java/androidx/core/content/pm/PermissionInfoCompat.java
M core/core/src/main/java/androidx/core/content/res/FontResourcesParserCompat.java
M core/core/src/main/java/androidx/core/content/res/ResourcesCompat.java
M core/core/src/main/java/androidx/core/database/CursorWindowCompat.java
M core/core/src/main/java/androidx/core/database/sqlite/SQLiteCursorCompat.java
M core/core/src/main/java/androidx/core/graphics/BitmapCompat.java
M core/core/src/main/java/androidx/core/graphics/BlendModeColorFilterCompat.java
M core/core/src/main/java/androidx/core/graphics/BlendModeUtils.java
M core/core/src/main/java/androidx/core/graphics/ColorUtils.java
M core/core/src/main/java/androidx/core/graphics/Insets.java
M core/core/src/main/java/androidx/core/graphics/PaintCompat.java
M core/core/src/main/java/androidx/core/graphics/PathUtils.java
M core/core/src/main/java/androidx/core/graphics/drawable/DrawableCompat.java
M core/core/src/main/java/androidx/core/graphics/drawable/IconCompat.java
M core/core/src/main/java/androidx/core/hardware/fingerprint/FingerprintManagerCompat.java
M core/core/src/main/java/androidx/core/location/GnssStatusWrapper.java
M core/core/src/main/java/androidx/core/location/LocationCompat.java
M core/core/src/main/java/androidx/core/location/LocationManagerCompat.java
M core/core/src/main/java/androidx/core/location/LocationRequestCompat.java
M core/core/src/main/java/androidx/core/net/ConnectivityManagerCompat.java
M core/core/src/main/java/androidx/core/net/TrafficStatsCompat.java
M core/core/src/main/java/androidx/core/os/BuildCompat.kt
M core/core/src/main/java/androidx/core/os/BundleCompat.java
M core/core/src/main/java/androidx/core/os/ConfigurationCompat.java
M core/core/src/main/java/androidx/core/os/EnvironmentCompat.java
M core/core/src/main/java/androidx/core/os/LocaleListCompat.java
M core/core/src/main/java/androidx/core/os/LocaleListCompatWrapper.java
M core/core/src/main/java/androidx/core/os/MessageCompat.java
M core/core/src/main/java/androidx/core/os/ParcelCompat.java
M core/core/src/main/java/androidx/core/os/TraceCompat.java
M core/core/src/main/java/androidx/core/os/UserManagerCompat.java
M core/core/src/main/java/androidx/core/provider/DocumentsContractCompat.java
M core/core/src/main/java/androidx/core/service/quicksettings/TileServiceCompat.java
M core/core/src/main/java/androidx/core/telephony/SubscriptionManagerCompat.java
M core/core/src/main/java/androidx/core/telephony/TelephonyManagerCompat.java
M core/core/src/main/java/androidx/core/text/HtmlCompat.java
M core/core/src/main/java/androidx/core/text/ICUCompat.java
M core/core/src/main/java/androidx/core/text/PrecomputedTextCompat.java
M core/core/src/main/java/androidx/core/text/util/LinkifyCompat.java
M core/core/src/main/java/androidx/core/text/util/LocalePreferences.java
M core/core/src/main/java/androidx/core/util/SizeFCompat.java
M core/core/src/main/java/androidx/core/util/TypedValueCompat.java
M core/core/src/main/java/androidx/core/view/ContentInfoCompat.java
M core/core/src/main/java/androidx/core/view/DisplayCompat.java
M core/core/src/main/java/androidx/core/view/DisplayCutoutCompat.java
M core/core/src/main/java/androidx/core/view/DragAndDropPermissionsCompat.java
M core/core/src/main/java/androidx/core/view/MenuCompat.java
M core/core/src/main/java/androidx/core/view/MenuItemCompat.java
M core/core/src/main/java/androidx/core/view/PointerIconCompat.java
M core/core/src/main/java/androidx/core/view/VelocityTrackerCompat.java
M core/core/src/main/java/androidx/core/view/ViewCompat.java
M core/core/src/main/java/androidx/core/view/ViewConfigurationCompat.java
M core/core/src/main/java/androidx/core/view/ViewGroupCompat.java
M core/core/src/main/java/androidx/core/view/ViewParentCompat.java
M core/core/src/main/java/androidx/core/view/ViewPropertyAnimatorCompat.java
M core/core/src/main/java/androidx/core/view/ViewStructureCompat.java
M core/core/src/main/java/androidx/core/view/WindowCompat.java
M core/core/src/main/java/androidx/core/view/accessibility/AccessibilityEventCompat.java
M core/core/src/main/java/androidx/core/view/accessibility/AccessibilityManagerCompat.java
M core/core/src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java
M core/core/src/main/java/androidx/core/view/accessibility/AccessibilityWindowInfoCompat.java
M core/core/src/main/java/androidx/core/view/animation/PathInterpolatorCompat.java
M core/core/src/main/java/androidx/core/view/contentcapture/ContentCaptureSessionCompat.java
M core/core/src/main/java/androidx/core/view/inputmethod/InputConnectionCompat.java
M core/core/src/main/java/androidx/core/widget/CompoundButtonCompat.java
M core/core/src/main/java/androidx/core/widget/EdgeEffectCompat.java
M core/core/src/main/java/androidx/core/widget/ImageViewCompat.java
M core/core/src/main/java/androidx/core/widget/NestedScrollView.java
M core/core/src/main/java/androidx/core/widget/PopupWindowCompat.java
M core/core/src/main/java/androidx/core/widget/TextViewCompat.java
M core/haptics/haptics/src/main/java/androidx/core/haptics/impl/HapticAttributesConverter.kt
M core/haptics/haptics/src/main/java/androidx/core/haptics/impl/HapticSignalConverter.kt
M core/haptics/haptics/src/main/java/androidx/core/haptics/impl/VibratorWrapperImpl.kt
ps...@google.com <ps...@google.com> #14
Branch: androidx-main
commit 12ea61e42c7f29a0f539a069f06507a0f133910d
Author: Alan Viverette <alanv@google.com>
Date: Tue Jul 02 13:55:26 2024
Remove usage of @DoNotInline for manual NewApi outlines (A thru Ca)
Does not include AppSearch because they have downstream changes.
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: I9496cfaeb50a5c484fbee6521b74a0605fb013dc
M activity/activity/src/main/java/androidx/activity/BackEventCompat.kt
M activity/activity/src/main/java/androidx/activity/ComponentActivity.kt
M activity/activity/src/main/java/androidx/activity/OnBackPressedDispatcher.kt
M appcompat/appcompat-resources/src/main/java/androidx/appcompat/resources/Compatibility.java
M appcompat/appcompat-resources/src/main/java/androidx/appcompat/widget/DrawableUtils.java
M appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegate.java
M appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
M appcompat/appcompat/src/main/java/androidx/appcompat/app/AppLocalesMetadataHolderService.java
M appcompat/appcompat/src/main/java/androidx/appcompat/view/WindowCallbackWrapper.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatReceiveContentHelper.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatSpinner.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextClassifierHelper.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextHelper.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/AppCompatTextViewAutoSizeHelper.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/DropDownListView.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/ListPopupWindow.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/MenuPopupWindow.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/SearchView.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/TintTypedArray.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/Toolbar.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/TooltipCompat.java
M appcompat/appcompat/src/main/java/androidx/appcompat/widget/ViewUtils.java
M benchmark/benchmark-macro/src/main/java/androidx/benchmark/macro/perfetto/server/PerfettoHttpServer.kt
M benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/SingleColorActivity.kt
M biometric/integration-tests/testapp/src/main/java/androidx/biometric/integration/testapp/CryptoUtils.kt
M bluetooth/bluetooth/src/main/java/androidx/bluetooth/AdvertiseParams.kt
M bluetooth/bluetooth/src/main/java/androidx/bluetooth/ScanFilter.kt
M bluetooth/bluetooth/src/main/java/androidx/bluetooth/ScanResult.kt
M browser/browser/src/main/java/androidx/browser/customtabs/Api33Impl.java
M browser/browser/src/main/java/androidx/browser/customtabs/CustomTabsIntent.java
M camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/adapter/EncoderProfilesProviderAdapter.kt
M camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/compat/ApiCompat.kt
M camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/impl/CameraInteropStateCallbackRepository.kt
M camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/internal/DynamicRangeConversions.kt
M camera/camera-camera2-pipe-integration/src/main/java/androidx/camera/camera2/pipe/integration/internal/DynamicRangeResolver.kt
M camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/ApiCompat.kt
M camera/camera-camera2-pipe/src/main/java/androidx/camera/camera2/pipe/compat/CaptureSessionWrapper.kt
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/Camera2CaptureRequestBuilder.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/Camera2EncoderProfilesProvider.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/DynamicRangeResolver.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SynchronizedCaptureSessionBaseImpl.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/ApiCompat.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/StreamConfigurationMapCompatBaseImpl.java
M camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/params/DynamicRangeConversions.java
M camera/camera-core/src/main/java/androidx/camera/core/imagecapture/Bitmap2JpegBytes.java
M camera/camera-core/src/main/java/androidx/camera/core/impl/CameraValidator.java
M camera/camera-core/src/main/java/androidx/camera/core/impl/utils/ContextUtil.java
M camera/camera-effects/src/main/java/androidx/camera/effects/internal/Utils.java
M camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/Api21Impl.kt
M camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/ExtensionsUtils.java
M camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/workaround/CaptureOutputSurfaceForCaptureProcessor.java
M camera/camera-testing/src/main/java/androidx/camera/testing/impl/CameraUtil.java
M camera/camera-testing/src/main/java/androidx/camera/testing/impl/TestImageUtil.java
M camera/camera-testing/src/main/java/androidx/camera/testing/impl/WakelockEmptyActivityRule.kt
M camera/camera-testing/src/main/java/androidx/camera/testing/impl/compat/LooperCompat.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/compat/Api23Impl.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/compat/Api24Impl.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/compat/Api26Impl.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/compat/Api28Impl.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/compat/Api29Impl.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/compat/Api31Impl.java
M camera/camera-video/src/main/java/androidx/camera/video/internal/encoder/EncoderImpl.java
M camera/camera-view/src/main/java/androidx/camera/view/SurfaceViewImplementation.java
M camera/camera-viewfinder/src/main/java/androidx/camera/viewfinder/SurfaceViewImplementation.java
M camera/integration-tests/avsynctestapp/src/main/java/androidx/camera/integration/avsync/MainActivity.kt
M camera/integration-tests/camerapipetestapp/src/main/java/androidx/camera/integration/camera2/pipe/SimpleCamera.kt
M camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXActivity.java
M camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/CameraXService.java
M camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/OpenGLActivity.java
M camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/SurfaceViewRenderSurface.java
M camera/integration-tests/extensionstestapp/src/main/java/androidx/camera/integration/extensions/Camera2ExtensionsActivity.kt
M car/app/app-automotive/src/main/java/androidx/car/app/activity/BaseCarAppActivity.java
M car/app/app-automotive/src/main/java/androidx/car/app/activity/renderer/surface/TemplateSurfaceView.java
M car/app/app-automotive/src/main/java/androidx/car/app/hardware/info/AutomotiveCarInfo.java
M car/app/app/src/main/java/androidx/car/app/CarAppMetadataHolderService.java
M car/app/app/src/main/java/androidx/car/app/CarContext.java
M car/app/app/src/main/java/androidx/car/app/SessionInfoIntentEncoder.java
M car/app/app/src/main/java/androidx/car/app/connection/CarConnectionTypeLiveData.java
M car/app/app/src/main/java/androidx/car/app/model/DateTimeWithZone.java
M car/app/app/src/main/java/androidx/car/app/model/DurationSpan.java
M car/app/app/src/main/java/androidx/car/app/navigation/model/TravelEstimate.java
M car/app/app/src/main/java/androidx/car/app/notification/CarNotificationManager.java
M car/app/app/src/main/java/androidx/car/app/validation/HostValidator.java
Description
Version used: 2.2.0-rc04
Devices/Android versions reproduced on: Pixel 4 - Android 10
WorkManager now support long running workers with foreground notification:
And the Javadoc for ForegroundInfo clearly shows that I can specify the foregroundServiceType as I would for a standard foreground service:
Except when I do:
setForegroundAsync(
ForegroundInfo(
NOTIFICATION_ID,
syncNotificationManager.createSyncForegroundNotification(),
ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE
or ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
)
)
from my Work I get this exception as soon as I try to run the work:
java.lang.IllegalArgumentException: foregroundServiceType 0x00000011 is not a subset of foregroundServiceType attribute 0x00000000 in service element of manifest file
at android.os.Parcel.createException(Parcel.java:2075)
at android.os.Parcel.readException(Parcel.java:2039)
at android.os.Parcel.readException(Parcel.java:1987)
at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:6136)
at android.app.Service.startForeground(Service.java:742)
at androidx.work.impl.foreground.SystemForegroundService$1.run(SystemForegroundService.java:118)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:1276)
at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:914)
at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:13964)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2784)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2741)
The reason is that the work library still rely on the service manifest which has no foregroundServiceType attribute specified (0x00000000) and i'm requesting a specific foregroundServiceType (0x00000011).
<service
android:name="androidx.work.impl.foreground.SystemForegroundService"
android:directBootAware="false"
android:enabled="@bool/enable_system_foreground_service_default"
android:exported="false"
tools:targetApi="n" />
my current workaround is to just copy this in my manifest and add my foregroundServiceType.
I briefly tried and seems like it is working as I want but I'm not sure if this is ok. If this is the correct way it should be documented!
This is what I added to my manifest:
<service
android:name="androidx.work.impl.foreground.SystemForegroundService"
android:directBootAware="false"
android:enabled="@bool/enable_system_foreground_service_default"
android:exported="false"
android:foregroundServiceType="connectedDevice|dataSync"
tools:targetApi="n" />
I copied yours and added
android:foregroundServiceType="connectedDevice|dataSync"
which is what I needed.