Skip to content

@W-21471024: Update Compose Material 3 to v1.4.0#2871

Merged
JohnsonEricAtSalesforce merged 28 commits intoforcedotcom:devfrom
JohnsonEricAtSalesforce:feature/w-21471024_update-compose-material-3-to-v1.4.0
May 6, 2026
Merged

@W-21471024: Update Compose Material 3 to v1.4.0#2871
JohnsonEricAtSalesforce merged 28 commits intoforcedotcom:devfrom
JohnsonEricAtSalesforce:feature/w-21471024_update-compose-material-3-to-v1.4.0

Conversation

@JohnsonEricAtSalesforce
Copy link
Copy Markdown
Contributor

@JohnsonEricAtSalesforce JohnsonEricAtSalesforce commented Apr 23, 2026

🎸 Ready For Review 🥁

This is a fully automated update to the request Compose version plus the Kotlin 2 and many other updates it required. Additionally, I scoped all the dependency and build system updates that are relevant to ensure major release fourteen of the SDK is new and shiny. For a big win, it looks like we can resolve every Android Studio lint warning for Gradle except those related to newDSL=false. That requires the customized directory structure of the workspace to be brought back in line with Gradle's defaults - Perhaps that's doable, but to heavy a lift for this work item.

Happy Spring Cleaning 🍃

positionProvider = TooltipDefaults.rememberRichTooltipPositionProvider(),
tooltip = {
RichTooltip(
caretSize = DpSize(PADDING_SIZE.dp, PADDING_SIZE.dp),
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The RichTooltip in Material 3 1.4.0 uses its own internal default caret size that follows Material Design 3 specifications. The visual appearance will still include a caret (the small triangular pointer), but its size is now determined by the library rather than the application code.


@Suppress("UnstableApiUsage")
composeOptions {
kotlinCompilerExtensionVersion = "1.5.14"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: With Kotlin 2.0+, Compose Compiler is integrated into the Kotlin compiler and kotlinCompilerExtensionVersion is no longer needed

}

composeOptions {
kotlinCompilerExtensionVersion = "1.5.14"
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: With Kotlin 2.0+, Compose Compiler is integrated into the Kotlin compiler and kotlinCompilerExtensionVersion is no longer needed

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 23, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 55.42%. Comparing base (0897347) to head (99b40be).

❗ There is a different number of reports uploaded between BASE (0897347) and HEAD (99b40be). Click for more details.

HEAD has 3 uploads less than BASE
Flag BASE (0897347) HEAD (99b40be)
SalesforceAnalytics 2 1
SmartStore 2 1
SalesforceSDK 2 1
Additional details and impacted files
@@             Coverage Diff              @@
##                dev    #2871      +/-   ##
============================================
- Coverage     64.87%   55.42%   -9.46%     
+ Complexity     2979     2495     -484     
============================================
  Files           223      223              
  Lines         17507    17630     +123     
  Branches       2497     2298     -199     
============================================
- Hits          11358     9771    -1587     
- Misses         4937     6865    +1928     
+ Partials       1212      994     -218     
Components Coverage Δ
Analytics 48.71% <ø> (ø)
SalesforceSDK 42.19% <ø> (-17.58%) ⬇️
Hybrid 59.30% <ø> (+0.24%) ⬆️
SmartStore 78.20% <ø> (ø)
MobileSync 82.11% <ø> (+0.43%) ⬆️
React 51.50% <ø> (ø)
Files with missing lines Coverage Δ
...m/salesforce/androidsdk/ui/components/LoginView.kt 54.45% <ø> (+10.00%) ⬆️

... and 91 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown

1 Warning
⚠️ Big PR, try to keep changes smaller if you can.

Generated by 🚫 Danger

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android native:NativeSampleApps:AuthFlowTester:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android native:NativeSampleApps:AuthFlowTester:assembleDebug 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:AuthFlowTester:assembleAndroidTest 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

2 similar comments
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceSDK:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceSDK:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceSDK:assembleAndroidTest 9.4.1 Build Scan not published

@JohnsonEricAtSalesforce JohnsonEricAtSalesforce force-pushed the feature/w-21471024_update-compose-material-3-to-v1.4.0 branch from 5408697 to 201bbb4 Compare April 24, 2026 18:24
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceSDK:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceSDK:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceSDK:assembleAndroidTest 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

1 similar comment
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@JohnsonEricAtSalesforce
Copy link
Copy Markdown
Contributor Author

@brandonpage, any thoughts on this test failure? It passed locally so that might rule out its being related to the updates.

Screenshot 2026-04-24 at 16 15 47

@JohnsonEricAtSalesforce
Copy link
Copy Markdown
Contributor Author

@brandonpage or @wmathurin , here's another consistent failure for this pull request that passed locally for me. I'm looking around, but if you're more familiar with this test let me know.

Screenshot 2026-04-24 at 16 16 57

@JohnsonEricAtSalesforce
Copy link
Copy Markdown
Contributor Author

Finally, here's CI failure #3 which is odd since I don't believe anything changed related to how the resources are prepared. @wmathurin or @brandonpage ?

Screenshot 2026-04-24 at 16 18 08

@JohnsonEricAtSalesforce JohnsonEricAtSalesforce force-pushed the feature/w-21471024_update-compose-material-3-to-v1.4.0 branch 2 times, most recently from 2fc3586 to 44173a5 Compare April 24, 2026 22:29
@JohnsonEricAtSalesforce JohnsonEricAtSalesforce marked this pull request as ready for review April 24, 2026 22:33
@JohnsonEricAtSalesforce JohnsonEricAtSalesforce force-pushed the feature/w-21471024_update-compose-material-3-to-v1.4.0 branch from e14151d to 581d100 Compare April 24, 2026 22:39
@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

…nspector

Test Dependencies:
- RestExplorer: androidx.test 1.5.x/3.5.0 → 1.7.0/3.7.0
  - runner: 1.5.1 → 1.7.0
  - rules: 1.5.0 → 1.7.0
  - espresso-core: 3.5.0 → 3.7.0
- AuthFlowTester: androidx.test:rules 1.6.1 → 1.7.0

Core Libraries:
- androidx.sqlite: 2.2.0 → 2.6.2 (SmartStore)
- SQLCipher Android: 4.10.0 → 4.14.0 (SmartStore)
  Note: SQLCipher 4.14.0 officially recommends androidx.sqlite 2.6.2
- androidx.webkit: 1.14.0 → 1.15.0 (SalesforceHybrid)
- androidx.core:core-splashscreen: 1.0.1 → 1.2.0 (SalesforceHybrid)

Compose Libraries:
- androidx.compose.runtime:runtime-android: 1.10.0 → 1.11.0 (AuthFlowTester)
- androidx.compose.ui:ui-test: 1.10.3 → 1.11.0 (AuthFlowTester)

All updates tested with full build (1148 tasks, 2m 48s).
BUILD SUCCESSFUL - no compilation errors or warnings.
- Update Android Gradle Plugin from 9.1.1 to 9.2.0
- Update Jacoco from 0.8.13 to 0.8.14
- Replace deprecated srcDirs() and srcDir() with directories.add()
  across all build.gradle.kts files to resolve AGP 9.x deprecation warnings

The srcDirs() method is deprecated in AGP 9.x in favor of using the
directories mutable set. This change updates all sourceSet configurations
across libraries and sample apps to use the new API.

Files modified:
- Root build.gradle.kts and buildSrc/build.gradle.kts (version updates)
- All library build files (SalesforceSDK, SmartStore, MobileSync, etc.)
- All sample app build files (RestExplorer, AccountEditor, etc.)
- Remove renderScript = true from buildFeatures in all build files
- Remove renderscript.directories from sourceSets configurations
- No functional impact as RenderScript is not used in the codebase

RenderScript has been deprecated since Android 12 (API 31) and will be
removed in AGP 10.0. The SDK does not use RenderScript anywhere - no
.rs files, no renderscript imports, and build tasks show NO-SOURCE.

This change eliminates 12 deprecation warnings per build and removes
unnecessary RenderScript compilation tasks, improving build performance.

Files modified:
- All 6 library modules (SalesforceSDK, SmartStore, MobileSync, etc.)
- All 5 native sample apps (RestExplorer, AuthFlowTester, etc.)
- 2 hybrid sample apps (AccountEditor, MobileSyncExplorerHybrid)

Verified: Build succeeds with no RenderScript warnings or errors.
- Comprehensive step-by-step migration document
- Addresses ~17 deprecation warnings per build
- Required before AGP 10.0 upgrade
- Includes troubleshooting, rollback procedures, and testing strategy

This document provides a complete guide for enabling android.newDsl=true,
which will eliminate android {} block and variant API deprecation warnings.

The migration is estimated at 2-4 hours with low-medium risk.
- Replace task<Exec>("buildReactTestBundle") with tasks.register<Exec>()
- Replace task("buildReactTestBundleIfNotExists") with tasks.register()
- Refactor conditional logic to use onlyIf{} and doFirst{} for lazy evaluation

The old task() API has been deprecated since Gradle 4.9 (2018) and uses
eager task configuration which impacts build performance. The new
tasks.register() API provides lazy task configuration, only configuring
tasks when they are actually needed.

Changes:
- Line 120: task<Exec>() → tasks.register<Exec>()
- Lines 158-164: Moved file existence check to onlyIf{}, directory
  creation to doFirst{}, and dependsOn() stays in configuration block

This eliminates 2 deprecation warnings:
- 'fun task(name: String, configureAction: Action<in Task>): Task' is deprecated

Verified:
- Tasks appear in task list (buildReactTestBundle, buildReactTestBundleIfNotExists)
- No task deprecation warnings in build output
- Tasks properly registered with preDebugAndroidTestBuild dependency

Note: The tasks themselves may fail at execution time if React Native
dependencies are not installed, but this is a pre-existing condition
unrelated to this API migration.
Add inline documentation for the android.newDsl=false deprecation that
was analyzed and deferred for future resolution.

Changes:
- gradle.properties: Add TODO comment noting newDsl migration should be
  done in dedicated work item
- All build.gradle.kts files: Add TODO comments on android {} blocks
  indicating they cannot be resolved until newDsl=true is enabled
- publish-module.gradle.kts: Fix indentation in pom{} block and
  restructure signing{} block placement for consistency

Background:
The android.newDsl=false setting causes ~17 deprecation warnings:
- 12× android {} block deprecation warnings
- 4× variant API warnings (libraryVariants, testVariants, etc.)
- 1× newDsl property deprecation warning

This migration was analyzed and documented in MIGRATION_android_newDsl.md
(commit 92dbece) but explicitly deferred per user request. The TODO
comments ensure this technical debt is visible in the code until the
migration is completed.

The migration will be required before upgrading to AGP 10.0, which will
remove support for the old DSL entirely.

Related: MIGRATION_android_newDsl.md
The android.newDsl=true migration was attempted but is BLOCKED due to
incompatibility between Kotlin Gradle Plugin 2.2.10 and AGP 9.2.0's
new DSL when android.builtInKotlin=false.

Blocker Details:
- Kotlin plugin with newDsl=true attempts cast to BaseExtension
- AGP with newDsl=true provides LibraryExtensionImpl (new DSL type)
- Cast fails with ClassCastException

Alternative approach (AGP built-in Kotlin) also fails:
- Kotlin compilation shows NO-SOURCE
- Java compilation fails due to missing Kotlin classes

Migration cannot proceed until:
1. Kotlin Gradle Plugin is updated to support AGP 9.x new DSL, OR
2. AGP's built-in Kotlin support is properly configured, OR
3. Migration is deferred until AGP 10.0 (which removes old DSL entirely)

See MIGRATION_android_newDsl_BLOCKER.md for complete analysis.

Impact: ~17 deprecation warnings remain until blocker is resolved.
Documents second migration attempt using Kotlin Gradle Plugin 2.3.21 which
provided clearer error messages. Root cause confirmed: AGP 9.0's built-in
Kotlin support is incompatible with the project's non-standard source layout
(src/ instead of src/main/java). Migration remains blocked until source
directories are restructured to standard Android layout.
Remove explicit version specifications from Compose artifacts to allow
the Compose BOM (2026.04.01) to manage versions automatically.

Changes:
- Remove composeVersion variable (was set to non-existent 1.13.0)
- Remove explicit versions from Compose dependencies
- Let BOM provide compatible versions (1.11.0) for all Compose artifacts

This fixes dependency resolution failures where version 1.13.0 was
specified but doesn't exist in Maven repositories. The BOM pattern
ensures all Compose libraries use compatible versions without
version conflicts.

Verified: App builds successfully, installs, and runs without errors.
Add Compose BOM to androidTestImplementation configuration to allow
BOM-managed Compose test dependencies to resolve properly.

Problem:
- androidx.compose.ui:ui-test-junit4 and ui-test were failing with
  empty versions (e.g., "androidx.compose.ui:ui-test-junit4:.")
- The BOM was only declared for implementation, not androidTest

Solution:
- Add androidTestImplementation(platform("androidx.compose:compose-bom:2026.04.01"))
- This allows Compose test artifacts to inherit versions from the BOM

Verified:
- debugAndroidTestRuntimeClasspath now resolves all dependencies
- compileDebugAndroidTestSources: BUILD SUCCESSFUL
- assembleDebugAndroidTest: BUILD SUCCESSFUL
- Updated kotlin-gradle-plugin to 2.3.20 in build.gradle.kts and buildSrc
- Updated compose-compiler-gradle-plugin to 2.3.20
- Updated kotlin serialization plugin to 2.3.20 in AuthFlowTester and SalesforceSDK
- Removed redundant kotlin-stdlib dependency from buildSrc (let gradle plugin provide it)
- Updated language/API version from 1.8 to 2.1 to match Kotlin 2.3.20 requirements

This resolves the 'Cannot access Serializable' lint error in AuthFlowTester
build.gradle.kts line 78, which was caused by version mismatch between
kotlin-gradle-plugin 2.2.10 and kotlin-stdlib 2.3.20.

Fixes: Version conflict between Kotlin gradle plugin and stdlib
Fixes: Language version 1.8 no longer supported in Kotlin 2.3.20
Fixes: Lint error on packaging resources block in AuthFlowTester
…ains.kotlin:compose-compiler-gradle-plugin:2.3.21ˆ Dependency And Whitespace Cleanup)
AGP 9.2.0 introduced a regression causing :libs:MobileSync:lintAnalyzeDebug
to hang indefinitely with the warning "--XuseK1Uast is no longer in effect".

Bisect testing confirmed:
- AGP 9.1.1: lint completes in ~44 seconds ✓
- AGP 9.2.0: lint hangs after 60+ seconds ✗

Root cause: UAST processing regression in AGP 9.2.0 during lint analysis.

Changes:
- build.gradle.kts: com.android.tools.build:gradle 9.2.0 → 9.1.1
- buildSrc/build.gradle.kts: com.android.tools.build:gradle 9.2.0 → 9.1.1

This downgrade restores stable lint behavior. Will monitor AGP 9.2.x
releases for a fix and upgrade when the regression is resolved.
@JohnsonEricAtSalesforce JohnsonEricAtSalesforce force-pushed the feature/w-21471024_update-compose-material-3-to-v1.4.0 branch from 081544c to 7f993cd Compare May 5, 2026 02:06
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

Job Summary for Gradle

Pull Request :: test-android
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
SalesforceMobileSDK-Android libs:SalesforceHybrid:convertCodeCoverage 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:lint 9.4.1 Build Scan not published
SalesforceMobileSDK-Android libs:SalesforceHybrid:assembleAndroidTest 9.4.1 Build Scan not published
SalesforceMobileSDK-Android native:NativeSampleApps:RestExplorer:assembleDebug 9.4.1 Build Scan not published

dependencies {
api(project(":libs:MobileSync"))
api("org.apache.cordova:framework:14.0.1")
api("org.apache.cordova:framework:14.0.1") // TODO: This update should happen in a dedicated work effort. ECJ20260423
Copy link
Copy Markdown

@github-actions github-actions Bot May 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ A newer version of org.apache.cordova:framework than 14.0.1 is available: 15.0.0

Comment thread buildSrc/build.gradle.kts
implementation("com.android.tools.build:gradle:8.12.0")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24")
implementation("org.jetbrains.kotlin:kotlin-stdlib:2.0.21")
// TODO: AGP 9.2.0 causes libs:MobileSync:lintAnalyzeDebug to hang. Review with future versions. ECJ20260423
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JohnsonEricAtSalesforce Any update on this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll be waiting for the next version of AGP since 9.2.0 causes the hang and no newer release has been published yet.

}

android {
android { // TODO: This cannot be resolved until newDSL=true
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What exactly can't be resolved? The entire android block?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct. The android DSL is deprecated when it is viewed in Android Studio and the Gradle logs.

Copy link
Copy Markdown
Contributor

@brandonpage brandonpage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to see compileSdk == targetSdk for the sample apps, but otherwise LGTM.

api(project(":libs:MobileSync"))
api("com.facebook.react:react-android:0.79.3")
implementation("androidx.core:core-ktx:1.16.0") // Update requires API 36 compileSdk
api("com.facebook.react:react-android:0.79.3") // TODO: This update should happen in a dedicated work item. ECJ20260423
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ A newer version of com.facebook.react:react-android than 0.79.3 is available: 0.85.3

@JohnsonEricAtSalesforce JohnsonEricAtSalesforce merged commit 462fadb into forcedotcom:dev May 6, 2026
30 of 35 checks passed
@JohnsonEricAtSalesforce JohnsonEricAtSalesforce deleted the feature/w-21471024_update-compose-material-3-to-v1.4.0 branch May 6, 2026 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants