Reuse ShadowUIModeManager in ShadowUIModeManagerTest by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10368
Update AndroidX by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10373
Update dependency gradle to v8.14.2 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10372
Update dependency com.googlecode.libphonenumber:libphonenumber to v9.0.7 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10371
Update dependency org.bouncycastle:bcprov-jdk18on to v1.81 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10374
Fix ApplicationInfo inconsistencies in Robolectric. in https://github.com/robolectric/robolectric/pull/10375
Add shadow for new resolveActivityAsUser variant. in https://github.com/robolectric/robolectric/pull/10377
Adjust to indevelopment SDK changes. in https://github.com/robolectric/robolectric/pull/10379
Adding support to the Simulator for picking up the device configuration from a Configurer. in https://github.com/robolectric/robolectric/pull/10381
Clean up SDK ranges for shadow methods in Baklava. in https://github.com/robolectric/robolectric/pull/10380
Add a shadow for Equalizer in https://github.com/robolectric/robolectric/pull/10384
Update example to be consistent with robolectric.org by @seadowg in https://github.com/robolectric/robolectric/pull/7475
Update the simulator-gradle-plugin to depends on AGP gradle-api by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10386
Replace custom getOrDefault() with the corresponding Java method by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10370
Fix Javadoc for ShadowPausedLooper by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10387
Fix condition in ResourceHelper#parseFloatAttribute() by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10369
Validate listener in ShadowAccountManager#addOnAccountsUpdatedListener() by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10361
Add support for UiModeManager.setNightMode(UiModeManager.MODE_NIGHT_CUSTOM) in https://github.com/robolectric/robolectric/pull/10390
Lazily register the simulator plugin by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10391
Enable stricter plugin validation by @hoisie in https://github.com/robolectric/robolectric/pull/10388
Add the VirtualDeviceManager#getVirtualDevice(int deviceId) to the ShadowVirtualDeviceManager. in https://github.com/robolectric/robolectric/pull/10395
Fix various small warnings by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10394
Add shadow implement of AccessibilityService#getRootInActiveWindow in https://github.com/robolectric/robolectric/pull/10397
Add more information to the generated POM file by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10392
Change ShadowChoreographer.getDefaultFrameDelay into a shadow method. in https://github.com/robolectric/robolectric/pull/10404
Restore removed methods from Config by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10406
Add shadow override for Network SocketFactory. in https://github.com/robolectric/robolectric/pull/10409
Add missing deprecations to some Config.Builder methods by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10408
Remove testDebugUnitTest from the dependencies of the simulator task by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10413
Merge branch 'google' into 'master' by @hoisie in https://github.com/robolectric/robolectric/pull/10414
Bump the snapshot version to 4.16 by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10415
Add ability to specify is80211azNtbMeasurement to ShadowRangingResult in https://github.com/robolectric/robolectric/pull/10410
Added implementation for Path.op by @GisoBartels in https://github.com/robolectric/robolectric/pull/10288
Fix massive code warnings of ShadowVirtualDeviceManagerTest by @utzcoz in https://github.com/robolectric/robolectric/pull/10399
Remove redundant String concatenation by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10417
Migrate deprecated APIs to idleMainLooper for ShadowVirtualDeviceManagerTest by @utzcoz in https://github.com/robolectric/robolectric/pull/10418
Replace Stream#toList to Stream#collect(Collectors.toList()) by @utzcoz in https://github.com/robolectric/robolectric/pull/10420
Support Java 11 in the simulator gradle plugin by @hoisie in https://github.com/robolectric/robolectric/pull/10421
Update AndroidX by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10422
Update roborazzi to v1.45.1 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10424
Update dependency io.mockk:mockk to v1.14.4 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10423
Replace Asset#toIntExact() with Math#toIntExact() by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10425
Add support for getPrimaryImei() in ShadowTelephonyManager. in https://github.com/robolectric/robolectric/pull/10427
Fix elevation in HW rendering for Android R (30) and below in https://github.com/robolectric/robolectric/pull/10429
Add ShadowTextureView to noOp drawing with it. in https://github.com/robolectric/robolectric/pull/10433
Update dependency com.googlecode.libphonenumber:libphonenumber to v9.0.8 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10435
Update Android Gradle Plugin by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10436
Update error.prone to v2.39.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10439
Update dependency net.ltgt.errorprone to v4.3.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10438
Update kotlin monorepo to v2.2.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10440
Update deprecation message in ShadowRoleManager by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10432
Implemente getLastAuthenticationTime supported since V. in https://github.com/robolectric/robolectric/pull/10443
Remove hyphens from 'security-providers' project in https://github.com/robolectric/robolectric/pull/10444
Remove temporary system property robolectric.supportElevationPreS in https://github.com/robolectric/robolectric/pull/10445
Fix the IntentSender in Robolectric to handle newer APIs. in https://github.com/robolectric/robolectric/pull/10448
Remove deprecated methods in :shadows:httpclient by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10450
Update roborazzi to v1.46.1 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10452
Update dependency gradle to v8.14.3 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10451
Update dependency com.squareup.okhttp3:okhttp-bom to v5 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10453
Set calling package for launchActivityForResult before onCreate. in https://github.com/robolectric/robolectric/pull/10454
Fix keyboard focus problem after right-click menu is displayed in https://github.com/robolectric/robolectric/pull/10456
Add waitForService, isDeclared and waitForDeclaredService for ShadowServiceManager. in https://github.com/robolectric/robolectric/pull/10457
Remove deckard references from the readme by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10431
Let ShadowWifiManager return empty list for getPrivilegedConfiguredNetworks(). in https://github.com/robolectric/robolectric/pull/10459
Update google-java-format to 1.28.0 by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10460
Add lseek functionality to ShadowOs. in https://github.com/robolectric/robolectric/pull/10462
Let ShadowWifiManager return invalid network ID for addNetwork. in https://github.com/robolectric/robolectric/pull/10463
Update Android Gradle Plugin by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10465
Update error.prone to v2.40.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10470
Update dependency com.squareup.okhttp3:okhttp-bom to v5.1.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10469
Update dependency com.googlecode.libphonenumber:libphonenumber to v9.0.9 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10467
Update dependency com.diffplug.spotless:spotless-plugin-gradle to v7.1.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10468
Update ShadowSystemServiceRegistry to match the framework. in https://github.com/robolectric/robolectric/pull/10458
Add tests to ResourceHelper and ResourceHelper2 by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10400
Add public shadow APIs ShadowInputManager.addInputDevice and ShadowInputManager.addInputDeviceKeys in https://github.com/robolectric/robolectric/pull/10474
Cleanup looper control runnable posting. in https://github.com/robolectric/robolectric/pull/10476
Update Kotlin declaration in Gradle script by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10477
Allow create/removeBond to properly change bond state on ShadowBluetoothDevice. in https://github.com/robolectric/robolectric/pull/10478
Update dependency com.googlecode.libphonenumber:libphonenumber to v9.0.10 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10479
Update dependency com.diffplug.spotless:spotless-plugin-gradle to v7.2.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10482
Update dependency io.mockk:mockk to v1.14.5 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10480
Update dependency androidx.compose:compose-bom to v2025.07.00 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10481
Support maxBounds in WindowConfiguration. in https://github.com/robolectric/robolectric/pull/9031
Remove tests that require maxSdk = 22 in https://github.com/robolectric/robolectric/pull/10483
Remove tests that only run on 21/22 Lollipop. in https://github.com/robolectric/robolectric/pull/10484
Update test to remove lollipop references. in https://github.com/robolectric/robolectric/pull/10487
Restore the minSdk for nativeSetConfiguration to be Baklava as git_main is still developing Baklava in https://github.com/robolectric/robolectric/pull/10488
Adapt to constructor API changes in Android. in https://github.com/robolectric/robolectric/pull/10485
Set default applicationInfo.uid in AndroidTestEnvironment to Process.myUid() in https://github.com/robolectric/robolectric/pull/10486
Speed up ShadowWifiP2pManagerTest and fix ShadowWifiP2pGroup. in https://github.com/robolectric/robolectric/pull/10492
Deprecate TextLayoutMode by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10493
Support classification in MotionEffect shadow in https://github.com/robolectric/robolectric/pull/10494
Update error.prone to v2.41.0 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10496
Update dependency com.diffplug.spotless:spotless-plugin-gradle to v7.2.1 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10495
Mark LEGACY LooperMode as unsupported in upcoming SDKs. in https://github.com/robolectric/robolectric/pull/10498
Fix list formatting of javadoc and simplify condition in https://github.com/robolectric/robolectric/pull/10499
Implement shadow of confirmCredentials in ShadowAccountManager in https://github.com/robolectric/robolectric/pull/10501
Add shadow for WifiAwareManager#isDeviceAttached. in https://github.com/robolectric/robolectric/pull/10502
Add unit tests for unpause handling. in https://github.com/robolectric/robolectric/pull/10503
Use a mock RemoteAdapterConnectionCallback in ShadowRemoteViewsAdapterTest in https://github.com/robolectric/robolectric/pull/10505
Move Process.myUid test from AndroidTestEnvironmentTest to ActivityScenarioTest in https://github.com/robolectric/robolectric/pull/10506
Fix launchActivityForResult_intent_hasCallingPackageOnCreate in Gradle by @hoisie in https://github.com/robolectric/robolectric/pull/10507
Update dependency com.googlecode.libphonenumber:libphonenumber to v9.0.11 by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10509
Update AndroidX by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10511
Update Android Gradle Plugin by @renovate[bot] in https://github.com/robolectric/robolectric/pull/10510
Deprecate TextLayoutModeConfigurer by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10497
Specify POM file when installing local android prebuilt by @hoisie in https://github.com/robolectric/robolectric/pull/10508
Make the simulator task variant aware by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10515
Move assume() statement to setUp method in ShadowSQLiteConnectionTest in https://github.com/robolectric/robolectric/pull/10519
Update Android V android-all Jar to 12714715 in https://github.com/robolectric/robolectric/pull/10520
Invoke ContrastChangeListeners in ShadowUIModeManager#setContrast to help verify the effect of contrast changes. in https://github.com/robolectric/robolectric/pull/10518
Update bundle generation for install-android-prebuilt.sh by @hoisie in https://github.com/robolectric/robolectric/pull/10517
Update publishing URLs to point to Maven Central Portal by @hoisie in https://github.com/robolectric/robolectric/pull/10516
Update the URL for SNAPSHOTS repo in README by @hoisie in https://github.com/robolectric/robolectric/pull/10521
Test Merge by @hoisie in https://github.com/robolectric/robolectric/pull/10524
Add BAKLAVA (SDK 36) to AndroidSdk and DefaultSdkProvider by @hoisie in https://github.com/robolectric/robolectric/pull/10526
Update SimulatorPlugin to use configuration avoidance by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10527
Simplify ResourceHelper2 by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10475
Use ApkAssets in ShadowArscApkAssets9 by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10464
Update shadow for setNetworkCountryIso with broadcast in https://github.com/robolectric/robolectric/pull/10528
Remove the shadows-playservices module by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10430
Expose the params Bundle supplied to the speak method for testing. in https://github.com/robolectric/robolectric/pull/10529
Add subscription broadcasts to ShadowSubscriptionManager in https://github.com/robolectric/robolectric/pull/10530
Add capability to mimic updated system image app PackageInfo behavior in package manager shadows. in https://github.com/robolectric/robolectric/pull/10532
Add tests to the simulator Version class by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10533
fix native library loading failing due to logging by @damianw in https://github.com/robolectric/robolectric/pull/10534
Remove SDK 21 and 22 from the supported SDK list. in https://github.com/robolectric/robolectric/pull/10535
Min SDK 23 cleanup. in https://github.com/robolectric/robolectric/pull/10536
Run GitHub Actions tests workflow on Android B (SDK 36) in https://github.com/robolectric/robolectric/pull/10537
Ensure all the idleFor logic runs on the Looper thread. in https://github.com/robolectric/robolectric/pull/10538
Adds robolectric support for AccessibilityInputConnection.deleteSurroundingText. in https://github.com/robolectric/robolectric/pull/10540
Partial convert to use TestLooperManager APIs. in https://github.com/robolectric/robolectric/pull/10541
Add ShadowLooper#runUntilEmpty. in https://github.com/robolectric/robolectric/pull/10543
Prepare for BluetoothSocket move of mDevice. in https://github.com/robolectric/robolectric/pull/10544
Convert ShadowPausedLooper#getNextScheduledTaskTime to use TestLooperManager APIs. in https://github.com/robolectric/robolectric/pull/10545
Update ShadowActivity to support peeking activities launched with startActivityIfNeeded. in https://github.com/robolectric/robolectric/pull/10542
Remove deprecated methods in Config by @MGaetan89 in https://github.com/robolectric/robolectric/pull/10434
Deprecate ShadowPausedMessageQueue#isIdle in favor of using real MessageQueue#isIdle. in https://github.com/robolectric/robolectric/pull/10547
Increment minimum supported compile SDK to 30 and fix shadowOf(vpnManager). in https://github.com/robolectric/robolectric/pull/10548
Roll back recent ShadowActivity change in https://github.com/robolectric/robolectric/pull/10549
New Contributors
@GisoBartels made their first contribution in https://github.com/robolectric/robolectric/pull/10288
@damianw made their first contribution in https://github.com/robolectric/robolectric/pull/10534
Full Changelog: https://github.com/robolectric/robolectric/compare/robolectric-4.15.1...robolectric-4.16