Skip to content

Robolectric 4.14

Choose a tag to compare

@hoisie hoisie released this 15 Nov 07:21
· 1280 commits to master since this release

Robolectric 4.14 adds support for Android V (SDK 35)!

If you encounter any issues, please file them on the GitHub issues page.

Thanks to everyone who contributed to the release, especially our GSoC contributors @Mia0451 and @Devashishbasu!

What's Changed

  • Bump roborazzi from 1.20.0 to 1.21.0 by @dependabot in #9270
  • Update snapshot version in Readme by @MGaetan89 in #9271
  • Remove obsolete reference to per-sdk shadows #9272
  • Remove google internal bug references from ExtractAarTransform. #9273
  • Expose SimplePerfStatsReporter#finalReport. #9275
  • Skip instrumenting classes with junit methods #9276
  • Update setDelegatedScopes to clear previously delegated scopes. #9279
  • Make fields of ShadowBatteryManager static for context level instance by @Devashishbasu in #9278
  • Do some minor cleanup in SandboxClassLoader #9280
  • Fix XML validation error in testapp's AndroidManifest.xml #9282
  • Replace androidx.test.annotation.Beta with com.google.common.annotations.Beta by @MGaetan89 in #9277
  • Add support for RangingResult.Builder in ShadowRangingResult for V. #9283
  • Add support for RangingResult.Builder in ShadowRangingResult for V. #9285
  • Add tests to ShadowSharedPreferences by @MGaetan89 in #9287
  • Add a ctesque test for andoid.media.MediaPlayer #9289
  • Bump Gradle to 8.9 by @MGaetan89 in #9291
  • Support @classname in function return type by @Mia0451 in #9268
  • Add special case handling for NoClassDefError in SandboxTestRunner #9294
  • Remove additional unused logic for legacy resources #9296
  • Remove looseSignatures usage from ShadowArscApkAssets9 by @Mia0451 in #9299
  • Remove looseSignatures usage from ShadowAudioManager by @Mia0451 in #9300
  • Remove looseSignatures usage from ShadowAppOpsManager by @Mia0451 in #9297
  • Keep parameter name of noteProxyOpNoThrow same as origin method by @utzcoz in #9301
  • Remove looseSignatures usage from ShadowActivityManager by @Mia0451 in #9293
  • Remove looseSignatures usage from ShadowActivityThread by @Mia0451 in #9295
  • Add support for ImageDecoder.createSource(File) by @hoisie in #9302
  • Remove looseSignatures usage from ShadowAudioTrack by @Mia0451 in #9303
  • Remove looseSignatures usage from ShadowBackupDataInput by @Mia0451 in #9304
  • Remove looseSignatures usage from ShadowBitmap by @Mia0451 in #9306
  • Remove looseSignatures usage from ShadowBluetoothDevice by @Mia0451 in #9308
  • Remove looseSignatures usage from ShadowContentProvider by @Mia0451 in #9309
  • Remove looseSignatures usage from ShadowContextHubManager by @Mia0451 in #9310
  • Remove looseSignatures usage from ShadowBluetoothAdapter by @Mia0451 in #9307
  • Add extension API setAlias for ShadowBluetoothDevice's compatibility by @utzcoz in #9311
  • Remove looseSignatures usage from ShadowApplicationPackageManager by @Mia0451 in #9298
  • Bump android-gradle from 8.5.0 to 8.5.1 by @dependabot in #9313
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.40 to 8.13.41 by @dependabot in #9312
  • Bump roborazzi from 1.21.0 to 1.22.2 by @dependabot in #9315
  • Bump com.android.tools:common from 31.5.0 to 31.5.1 by @dependabot in #9314
  • Remove looseSignatures usage from ShadowDevicePolicyManager by @Mia0451 in #9316
  • Remove looseSignatures usage from ShadowDisplayEventReceiver by @Mia0451 in #9317
  • Remove looseSignatures usage from ShadowDisplayManager by @Mia0451 in #9318
  • Add Shadow implementation for ShadowAppOpsManager.setUidMode #9319
  • Remove looseSignatures usage from ShadowDisplayManagerGlobal by @Mia0451 in #9320
  • Remove looseSignatures usage from ShadowInputManager by @Mia0451 in #9323
  • Remove looseSignatures usage from ShadowInputMethodManager by @Mia0451 in #9324
  • Add ShadowPermissionControllerManager and shadow revokeRuntimePermissions #9326
  • Add support to set showWhenLocked from manifest for ShadowActivity #9328
  • Remove ShadowCrossProfileApps constructor #9329
  • Remove looseSignatures usage from ShadowImageReader by @Mia0451 in #9322
  • Add support for RangingResult.Builder in ShadowRangingResult for V. #9325
  • Add tests for ShadowAlarmManager static fields by @Devashishbasu in #9284
  • Bump roborazzi from 1.22.2 to 1.23.0 by @dependabot in #9337
  • Bring integration_tests/multidex back and make it work with test process by @utzcoz in #9266
  • Treat compact resource entry offsets as unsigned shorts #9345
  • Add ability to resetCapabilities for NetworkCapabilities. #9333
  • Update SDK in test resources script and regenerate. #9348
  • Add support for Activity#requestsPermissions(String[], int, int) #9349
  • Make some fields of ShadowClipboardManager static for context level instance by @Devashishbasu in #9335
  • Add shadow support for SDK 33 PackageManager#queryIntentServices by @jselbo in #9346
  • Remove looseSignatures usage from ShadowHardwareRenderer by @Mia0451 in #9321
  • Adds support for shadowing ActivityManager.getRecentTasks() #9355
  • Remove looseSignatures usage from ShadowNativeBitmap by @Mia0451 in #9354
  • Move hardcoded list of packages to never acquire to InstrumentationConfiguration #9356
  • Remove looseSignatures usage from ShadowMediaCodec by @Mia0451 in #9353
  • Remove looseSignatures usage from ShadowLegacyTypeface by @Mia0451 in #9327
  • Remove looseSignatures usage from ShadowNativeImageReader by @Mia0451 in #9361
  • Remove looseSignatures usage from ShadowNativeHardwareRenderer by @Mia0451 in #9360
  • Bump roborazzi from 1.23.0 to 1.25.0 by @dependabot in #9364
  • Bump the androidx group with 3 updates by @dependabot in #9363
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.41 to 8.13.42 by @dependabot in #9365
  • Extend VirtualDisplay shadow support down to SDK 28 by @jselbo in #9339
  • Remove the latest android-all from the runtime classpath when running Robolectric tests by @hoisie in #9358
  • Add tests ShadowKeyguardManager static fields by @Devashishbasu in #9372
  • Update to google-java-format 1.23.0 by @MGaetan89 in #9373
  • Migrate buildSrc Gradle files to Kotlin by @MGaetan89 in #9374
  • Allow for case-insensitive single value configuration reading. #9375
  • Remove deprecated FragmentTestUtil #9377
  • Remove looseSignatures usage from ShadowNativeStaticLayout by @Mia0451 in #9386
  • Remove looseSignatures usage from ShadowNativeRenderNodeOP by @Mia0451 in #9385
  • Remove looseSignatures usage from ShadowNativeRenderNodeAnimatorQ by @Mia0451 in #9384
  • Remove looseSignatures usage from ShadowNativePaint by @Mia0451 in #9383
  • Remove looseSignatures usage from ShadowNativeImageReaderSurfaceImage by @Mia0451 in #9382
  • Make fields of ShadowColorDisplayManager static for context level instance by @Devashishbasu in #9367
  • Make fields of ShadowDevicePolicyManager static for context level instance by @Devashishbasu in #9352
  • Remove looseSignatures usage from ShadowLocationManager by @Mia0451 in #9330
  • Make fields of ShadowAutofillManager static for context level instance by @Devashishbasu in #9305
  • Make fields of ShadowDownloadManager static for context level instance by @Devashishbasu in #9362
  • Make fields of ShadowFingerprintManager static for context level instance by @Devashishbasu in #9369
  • Make some fields of ShadowActivityManager static for context level instance by @Devashishbasu in #9234
  • Make fields of ShadowCameraManager static for context level instance by @Devashishbasu in #9334
  • Make some fields of ShadowAppWidgetManager static for context level instance by @Devashishbasu in #9267
  • Make fields of ShadowContextHubManager static for context level instance by @Devashishbasu in #9366
  • Make fields of ShadowBiometricManager static for context level by @Devashishbasu in #9332
  • Remove unused legacy resource logic for AndroidTestEnvironment by @utzcoz in #9389
  • Remove looseSignatures usage from ShadowNfcAdapter by @Mia0451 in #9393
  • Remove looseSignatures usage from ShadowNetworkCapabilities by @Mia0451 in #9392
  • Make fields of ShadowAppsOpsManager static for context level instance by @Devashishbasu in #9390
  • Make fields of ShadowBluetoothManager static for context level instance by @Devashishbasu in #9395
  • Remove looseSignatures usage from ShadowNotificationManager by @Mia0451 in #9398
  • Remove looseSignatures usage from ShadowNativeTypeface by @Mia0451 in #9391
  • Bump gradle/actions from 3 to 4 by @dependabot in #9400
  • Copy SessionInfo.installerPackageName when creating session #9402
  • Remove the gradle_wrapper_validation.yml workflow by @MGaetan89 in #9403
  • Add @resetter for GLSurfaceView to terminate the GLThread, if running. #9406
  • Remove looseSignatures usage from ShadowPausedMessageQueue by @Mia0451 in #9414
  • Make-fields-of-ShadowEuiccManager-static-for-context-level-instance by @Devashishbasu in #9413
  • Remove looseSignatures usage from ShadowParcel by @Mia0451 in #9407
  • Remove looseSignatures usage from ShadowPaint by @Mia0451 in #9401
  • Remove looseSignatures usage from ShadowPhoneWindow by @Mia0451 in #9417
  • Make-fields-of-ShadowCrossProfileApps-static-for-context-level-instance by @Devashishbasu in #9411
  • Make-fields-of-ShadowLauncherApps-static-for-context-level-instance by @Devashishbasu in #9418
  • Avoid an OOM when PathIterator is used in LEGACY graphics mode #9423
  • Improve simulation of VMRuntime.newNonMoveableArray and VMRuntime.addressOf #9424
  • Remove looseSignatures usage from ShadowPhoneWindowFor22 by @Mia0451 in #9422
  • Move Java files in buildSrc to the java source set by @MGaetan89 in #9426
  • Migrate the agp package in buildSrc to Kotlin by @MGaetan89 in #9427
  • Migrate the AggregateJavadocPlugin plugin in buildSrc to Kotlin by @MGaetan89 in #9428
  • Migrate the SpotlessPlugin plugin in buildSrc to Kotlin by @MGaetan89 in #9429
  • Make-fields-of-ShadowDropBoxManager-static-for-context-level-instance by @Devashishbasu in #9412
  • Deprecate LEGACY SQLite mode #9433
  • Add necessary minSdk = O for some createActivityContexts tests by @utzcoz in #9431
  • Remove looseSignatures usage from ShadowPosix by @Mia0451 in #9438
  • Add tests for ShadowMediaRouter static state by @Devashishbasu in #9432
  • Remove looseSignatures usage from ShadowPixelCopy by @Mia0451 in #9425
  • Fix incorrect method name in ShadowInstrumentation warning log by @utzcoz in #9439
  • Remove looseSignatures usage from ShadowSystemVibrator by @Mia0451 in #9447
  • Remove looseSignatures usage from ShadowSystemServiceRegistry by @Mia0451 in #9446
  • Remove looseSignatures usage from ShadowSensorManager by @Mia0451 in #9442
  • Remove looseSignatures usage from ShadowRotationWatcherFor22 by @Mia0451 in #9441
  • Make-fields-of-ShadowNetworkScoreManager-static-for-context-level-instance by @Devashishbasu in #9449
  • Add tests for ShadowCaptioningManager static state by @Devashishbasu in #9396
  • Bump roborazzi from 1.25.0 to 1.26.0 by @dependabot in #9471
  • Bump androidx.annotation:annotation from 1.8.1 to 1.8.2 in the androidx group by @dependabot in #9467
  • Bump kotlin from 2.0.0 to 2.0.10 by @dependabot in #9470
  • Bump android-gradle from 8.5.1 to 8.5.2 by @dependabot in #9468
  • Bump com.android.tools:common from 31.5.1 to 31.5.2 by @dependabot in #9469
  • Remove looseSignatures usage from ShadowWindowManagerGlobal by @Mia0451 in #9463
  • Remove looseSignatures usage from ShadowTimeZoneFinderS by @Mia0451 in #9457
  • Remove looseSignatures usage from ShadowTimeZoneFinderQ by @Mia0451 in #9456
  • Remove looseSignatures usage from ShadowThreadedRenderer by @Mia0451 in #9454
  • Remove looseSignatures usage from ShadowSystemClock by @Mia0451 in #9445
  • Remove looseSignatures usage from ShadowSurface by @Mia0451 in #9444
  • Remove looseSignatures usage from ShadowSpeechRecognizer by @Mia0451 in #9443
  • Remove looseSignatures usage from ShadowPowerManager by @Mia0451 in #9440
  • Make-fields-of-ShadowSensorManager-static-for-context-level-instance by @Devashishbasu in #9465
  • Update ShadowVMRuntime.newNonMovableArray to support PathIterator #9434
  • Remove looseSignatures usage from ShadowUsbManager by @Mia0451 in #9460
  • Remove looseSignatures usage from ShadowUsageStatsManager by @Mia0451 in #9459
  • Remove looseSignatures usage from ShadowTimeZoneFinder by @Mia0451 in #9455
  • Add tests for ShadowRoleManager static state by @Devashishbasu in #9453
  • Remove looseSignatures usage from ShadowTelephonyManager by @Mia0451 in #9448
  • Migrate the AarDepsPlugin plugin in buildSrc to Kotlin by @MGaetan89 in #9466
  • Migrate the GradleManagedDevicePlugin plugin in buildSrc to Kotlin by @MGaetan89 in #9437
  • Make-fields-of-ShadowSliceManager-static-for-context-level-instance by @Devashishbasu in #9473
  • Upgrade to Gradle 8.10 by @MGaetan89 in #9474
  • Remove looseSignatures usage from ShadowNoopNativeAllocationRegistry by @Mia0451 in #9394
  • Migrate the DeployedRoboJavaModulePlugin plugin in buildSrc to Kotlin by @MGaetan89 in #9430
  • Make-fields-of-ShadowSafetyCenterManager-static-for-context-level-instance by @Devashishbasu in #9461
  • Add tests for ShadowStorageManager static state by @Devashishbasu in #9476
  • Add an overload for setInstallSourceInfo that has all possible parameters. #9491
  • Migrate the ShadowsPlugin plugin in buildSrc to Kotlin by @MGaetan89 in #9489
  • Support font_var_typeface_cache changes. #9493
  • Add support for LauncherApps.getProfiles() on V+ in Robolectric. #9495
  • Update the CodeQL workflow by @MGaetan89 in #9494
  • Make-fields-of-ShadowUwbManager-static-for-context-level-instance by @Devashishbasu in #9497
  • Make-fields-of-ShadowUsbManager-static-for-context-level-instance by @Devashishbasu in #9487
  • Make-fields-of-ShadowTimeManager-static-for-context-level-instance by @Devashishbasu in #9483
  • Make-fields-of-ShadowWearableSensingManager-static-for-context-level-instance by @Devashishbasu in #9499
  • Make-fields-of-ShadowUsageStatsManager-static-for-context-level-instance by @Devashishbasu in #9486
  • Make-fields-of-ShadowSubscriptionManager-static-for-context-level-instance by @Devashishbasu in #9477
  • Add tests for ShadowTelephonyManager static state by @Devashishbasu in #9481
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.42 to 8.13.43 by @dependabot in #9505
  • Bump the androidx-test group with 2 updates by @dependabot in #9504
  • Make-fields-of-ShadowSystemHealthManager-static-for-context-level-instance by @Devashishbasu in #9479
  • Migrate buildSrc Gradle files to Kotlin by @MGaetan89 in #9344
  • Remove special case instrumentation configuration for user R classes #9507
  • Change first arg in TestEnvironment.setUpApplicationState from Method to String #9508
  • Trigger ConnectivityManager.NetworkCallback via ShadowConnectivityManager.setDefaultNetworkActive() #9509
  • Remove obsolete getLong and getInt functions in ShadowPuasedMessageQueue #9511
  • Update naming for ShadowPausedMessageQueue.nativePollOnce by @hoisie in #9510
  • Regenerate Robolectric test resources by @hoisie in #9512
  • Remove custom CSS from the generated Javadoc by @MGaetan89 in #9515
  • Make-fields-of-ShadowLocaleManager-static-for-context-level-instance by @Devashishbasu in #9420
  • Add test to guard the behavior of ClassName annotation concerned with generic type by @Mia0451 in #9514
  • Rearrange API levels for unit tests by @MGaetan89 in #9502
  • Make-fields-of-ShadowVirtualManager-static-for-context-level-instance by @Devashishbasu in #9519
  • Make-fields-of-ShadowVcnManager-static-for-context-level-instance by @Devashishbasu in #9518
  • Make-fields-of-ShadowRestrictionsManager-static-for-context-level-instance by @Devashishbasu in #9452
  • Make-fields-of-ShadowSearchManager-static-for-context-level-instance by @Devashishbasu in #9464
  • Migrate root Gradle files to kotlin by @MGaetan89 in #9521
  • Remove looseSignatures usage from ShadowWifiManager by @Mia0451 in #9462
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.43 to 8.13.44 by @dependabot in #9524
  • Bump kotlin from 2.0.10 to 2.0.20 by @dependabot in #9523
  • Migrate some Gradle files to Kotlin by @MGaetan89 in #9522
  • Migrate some Gradle files to Kotlin (2) by @MGaetan89 in #9527
  • Make-fields-of-ShadowShortcutManager-static-for-context-level-instance by @Devashishbasu in #9472
  • Migrate some Gradle files to Kotlin (3) by @MGaetan89 in #9528
  • Make fields of ShadowInputMethodManager static for context level instance by @Devashishbasu in #9371
  • Migrate some Gradle files to Kotlin (4) by @MGaetan89 in #9530
  • Make-fields-of-ShadowWifiP2pManager-static-for-context-level-instance by @Devashishbasu in #9503
  • Make fields of ShadowFileIntegrityManager static for context level instance by @Devashishbasu in #9368
  • Make-fields-of-ShadowRollbackManager-static-for-context-level-instance by @Devashishbasu in #9458
  • Migrate the remaining Gradle files to Kotlin (7) by @MGaetan89 in #9534
  • Remove duplicated USE_BIOMETRIC declaration by @utzcoz in #9536
  • Make fields of ShadowAmbientContextManager static for context level instance by @Devashishbasu in #9388
  • dev: Add basic devcontainer for GitHub Codespaces by @utzcoz in #9535
  • Migrate some Gradle files to Kotlin (5) by @MGaetan89 in #9532
  • Make-fields-of-ShadowPowerManager-static-for-context-level-instance by @Devashishbasu in #9451
  • Migrate some Gradle files to Kotlin (6) by @MGaetan89 in #9533
  • Make-fields-of-ShadowNotificationManager-static-for-context-level-instance by @Devashishbasu in #9450
  • Make fields of ShadowCarrierConfigManager static for context level instance by @Devashishbasu in #9397
  • Make-fields-of-ShadowTelecomManager-static-for-context-level-instance by @Devashishbasu in #9480
  • Remove Groovy-specific config by @MGaetan89 in #9538
  • Bump android-gradle from 8.5.2 to 8.6.0 by @dependabot in #9539
  • Bump com.android.tools:common from 31.5.2 to 31.6.0 by @dependabot in #9540
  • Prepare for the V SDK release. #9542
  • Enable ShadowNativePathIterator for Android V #9543
  • Add test for ShadowContentResolver.openAssetFileDescriptor #9544
  • Allow the latest release in AndroidVersion to still be unreleased. #9545
  • Update ShadowPermissionControllerManagerTest to use a mock #9547
  • Use a mock ContextHubClientCallback in ShadowContextHubManagerTest #9549
  • Improve deprecation message for ShadowRangingResult #9550
  • Update the main Readme file by @MGaetan89 in #9551
  • Make-fields-of-ShadowWifiAwareManager-static-for-context-level-instance by @Devashishbasu in #9501
  • Make-fields-of-ShadowVpnManager-static-for-context-level-instance by @Devashishbasu in #9520
  • Make-fields-of-ShadowTranslationManager-static-for-context-level-instance by @Devashishbasu in #9484
  • Make-fields-of-ShadowMediaSessionManager-static-for-context-level-instance by @Devashishbasu in #9435
  • Make fields of ShadowConnectivityManager static for context level instance by @Devashishbasu in #9340
  • Make-fields-of-ShadowWallpaperManager-static-for-context-level-instance by @Devashishbasu in #9498
  • Use lazy device creation in GradleManagedDevicePlugin by @MGaetan89 in #9553
  • Bump the androidx group with 2 updates by @dependabot in #9556
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.44 to 8.13.45 by @dependabot in #9557
  • Bump io.gitlab.arturbosch.detekt from 1.23.6 to 1.23.7 by @dependabot in #9558
  • Update to Gradle 8.10.1 by @MGaetan89 in #9559
  • Reduce NoClassDefFoundError in ShadowContextHubManager #9561
  • Adds ShadowOverlayManager. #9562
  • Merge branch 'google' into 'master' by @hoisie in #9546
  • Update some method signatures after ClassName migration by @hoisie in #9563
  • Add a new definition for ShadowMediaPlayer create #9564
  • Add support for key filtering in getConfigForSubId(int subId, String... keys) #9565
  • Remove long-deprecated and misspelled method in ShadowPackageManager #9568
  • Add Javadoc for files that have been recently modified by @hoisie in #9569
  • Fix common typos of recently modified files by @hoisie in #9570
  • Remove AndroidJdkLibsChecker suppression in the sandbox project #9571
  • Add a flag to disable @inDevelopment. #9567
  • Fix edge case when using @Implementation(methodName=...) by @hoisie in #9575
  • Test merge by @hoisie in #9576
  • Remove unnecessary shadow from MethodNameTest by @hoisie in #9577
  • Fix native Bitmap.recycle in Android V by @hoisie in #9578
  • Move data listener notification to lower layer as well to cover primitive bytes writes as well. #9579
  • Add support for NfcAdapter observe mode. #9580
  • Remove unused code from ShadowWranglerUnitTest #9582
  • Support ShadowSpeechRecognizer on Android V #9581
  • Remove looseSignatures in ShadowNativeThreadedRenderer #9583
  • Remove generics from ClassName annotation values by @hoisie in #9585
  • Make-fields-of-ShadowAccessibilityManager-static-for-context-level-instance by @Devashishbasu in #9554
  • Extend ShadowStatsManager with addConfig and removeConfig #9587
  • Bump org.jetbrains.kotlinx:kotlinx-coroutines-android from 1.8.1 to 1.9.0 by @dependabot in #9588
  • Make-fields-of-ShadowStatusBarManager-static-for-context-level-instance by @Devashishbasu in #9586
  • Add proxy implementations for new android V services. #9590
  • Prepare for CameraManager#openCameraDeviceUserAsync signature change in android. #9592
  • Revert all minSdk W shadow methods to V. #9594
  • Add support for additional flags parameter in the notifyChange method for ShadowContentResolver. #9597
  • Support static references to Choreographer.getInstance. #9135
  • Update some APIs to Use real types in ShadowNotificationManager #9598
  • Make-fields-of-ShadowUserManager-static-for-context-level-instance by @Devashishbasu in #9488
  • Fix code scanning alert #9: Arbitrary file access during archive extraction ("Zip Slip") by @MGaetan89 in #9600
  • Fix ClassNotFoundException when initializing Choreographer reflector #9602
  • Test merge by @hoisie in #9601
  • Fix resetting the AppOpsManager OnOpNotedCallback by @hoisie in #9608
  • Use `SuppressWarnings("robolectric.ShadowReturnTypeMismatch") in ShadowParcel by @hoisie in #9609
  • Fix default value regression of ShadowNotificationManager.importance by @hoisie in #9610
  • Fix ShadowConnectivityManager defaults after reset by @hoisie in #9607
  • Make protected fields as private for ShadowCompanionDeviceManager by @utzcoz in #9596
  • Add missing @Resetter annotation in ShadowColorDisplayManager by @hoisie in #9613
  • Stop shadowing the ColorDisplayManager constructor #9614
  • Fix package name in integration_tests/multidex manifest by @hoisie in #9615
  • Delete ShadowAnimationUtils. #9584
  • Fix a potential NPE in ShadowAccessibilityManager resetter by @hoisie in #9618
  • Initialize UserManager state during the ShadowUserManager static initializer by @hoisie in #9617
  • Fix an NPE in ShadowConnectivityManager by @hoisie in #9619
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.45 to 8.13.46 by @dependabot in #9620
  • Disallow null when calling ShadowAccessibilityManager.setEnabledAccessibilityServiceList #9623
  • Fix ShadowAccessibilityManager tests by @hoisie in #9625
  • Revert recent ShadowUserManager Context changes by @hoisie in #9624
  • Bump android-gradle from 8.6.0 to 8.6.1 by @dependabot in #9621
  • Bump com.android.tools:common from 31.6.0 to 31.6.1 by @dependabot in #9622
  • Update to Gradle 8.10.2 by @MGaetan89 in #9626
  • Deprecate looseSignatures and remove last remaining uses #9627
  • Reimplement Os.pread using channels and improve fidelity. #9631
  • Add methods to set SOC_MANUFACTURER and SOC_MODEL in ShadowBuild. #9632
  • Stop referencing AndroidVersions.W in shadows. #9639
  • Ensure that queryOverriddenIntents returns new copy (same like on device) and add tests for the same. #9640
  • Ensure all OsConstants fields have valid values. #9641
  • Fix FileDescriptor setFdInt. #9642
  • Add caching to native apk assets. #9644
  • Add Credential Manager service to ShadowServiceManager #9646
  • Update to google-java-format 1.24.0 by @MGaetan89 in #9648
  • Bump roborazzi from 1.26.0 to 1.28.0 by @dependabot in #9651
  • Implement pending update APIs in ShadowDevicePolicyManager #9654
  • Bump android-gradle from 8.6.1 to 8.7.0 by @dependabot in #9652
  • Bump com.android.tools:common from 31.6.1 to 31.7.0 by @dependabot in #9650
  • Bump asm from 9.7 to 9.7.1 by @dependabot in #9653
  • Bump the androidx group with 2 updates by @dependabot in #9649
  • Migrate Robolectric.setupActivity to Robolectric.buildActivity by @utzcoz in #9616
  • Upgrade to Guava 33.3.1 by @MGaetan89 in #9634
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.46 to 8.13.47 by @dependabot in #9656
  • Bump net.ltgt.errorprone from 3.1.0 to 4.0.1 by @dependabot in #9657
  • Create a Dependabot group for AGP by @MGaetan89 in #9658
  • Fix warnings in annotations by @MGaetan89 in #9633
  • Bump error-prone from 2.19.1 to 2.33.0 by @dependabot in #9655
  • Do not calculate determineTargetClass when the cache is available by @takahirom in #9661
  • Add shadow for new UsageStatsManager#queryEvents(UsageEventsQuery) #9664
  • Revert of "Implement ShadowBluetoothLeBroadcast" #9668
  • Adapt to changed BackMotionEvent constructor. #9667
  • Add a correctly spelled 'Supersedes' annotation for PluginFinder #9674
  • Bump roborazzi from 1.28.0 to 1.29.0 by @dependabot in #9676
  • Add setLinkUpstreamBandwidthKbps to ShadowNetworkCapabilities. #9673
  • Bump kotlin from 2.0.20 to 2.0.21 by @dependabot in #9675
  • Add methods to set ODM_SKU in ShadowBuild. #9678
  • Add AudioAttributes impl to ShadowMediaPlayer #9679
  • Add RobolectricTestParameterInjector #9681
  • Add a no-op ProtoLogConfigurationService to Robolectric's ShadowServiceManager #9682
  • Remove obsolete Robolectric TimeUtils #9685
  • Add sdkcompat test for Shadows.shadowOf(appilcation) by @utzcoz in #9687
  • Add section about the development model to README.md by @hoisie in #9606
  • Update the Development model by @MGaetan89 in #9689
  • gradle: Bump Spotless to 7.0.0.BETA3 by @utzcoz in #9688
  • Migrate the architecture documentation to the website by @MGaetan89 in #9690
  • Bump androidx.annotation:annotation from 1.8.2 to 1.9.0 in the androidx group by @dependabot in #9693
  • Bump error-prone from 2.33.0 to 2.34.0 by @dependabot in #9694
  • Bump net.ltgt.errorprone from 4.0.1 to 4.1.0 by @dependabot in #9696
  • Bump com.googlecode.libphonenumber:libphonenumber from 8.13.47 to 8.13.48 by @dependabot in #9698
  • Fix Dependabot config for AGP by @MGaetan89 in #9697
  • Bump the android-gradle-plugin group across 1 directory with 3 updates by @dependabot in #9699
  • Update AndroidVersions.W to AndroidVersions.Baklava. #9702
  • Disable commit body check for Dependabot by @MGaetan89 in #9701
  • Add a shim method PathIterator.nNextHost #9704
  • Adjust to modified BackMotionEvent constructor in in-development SDK. #9705
  • Update contribution guide by @MGaetan89 in #9574
  • Bump the preinstrumented version to 7 #9710
  • Allow access to jdk.internal.access for Robolectric's tests #9711
  • Remove SimpleFuture from Robolectric's utils #9714
  • Fix RobolectricTestParameterInjectorTest in Gradle #9716
  • Move RobolectricTestParameterInjectorTest to integration_tests/testparameterinjector by @hoisie in #9717
  • Add support for Android V by @hoisie in #9662

Full Changelog: robolectric-4.13...robolectric-4.14