v14.1.0
- Compose #4267:倍速快照与 Host 配置同源,新
setUp和挂载后立即同步snapshot/stateFlow。 - 暂停恢复 #4268:在 Java 公共核心修复缓冲通知覆盖暂停/恢复意图的问题,保留准备阶段暂停、预加载和
seek=false行为。 - IJK 三 ABI 成套更新:ARM64 / ARMv7 / x86_64 的 FFmpeg、player、SDL 库与独立 ABI 模块逐字节匹配,包含以下修复:
- MediaCodec 输出格式事件中的 H.264 crop-only、单轴可见尺寸传播。
- 可选 H.264 crop 重建:受限 SPS/PPS+IDR 转换下排空旧解码器代、重建并重放一次。
- 异步 MediaCodec EOS 等待输入槽位时允许输出继续推进,避免阻塞排空;自动生效,crop 选项关闭时也适用于 AVC/HEVC。
mediacodec-h264-crop-workaround 默认 0 关闭,仅适用于受支持 H.264 输入的异步 MediaCodec 路径,不适用于 HEVC、软件解码或同步输入。FFmpeg n5.1.10 / OpenSSL 3.5.9 基线保持不变。
发布前本地验证通过:Java/cast/Compose Debug 与 Release 共 52 次单测执行、48 项会话回归、Demo Debug/Release 构建、Release APK 16 KiB 原生库打包对齐,以及 15 模块双渠道坐标本地发布和投屏依赖隔离检查。本轮未对当前最终原生库重新进行真机播放验证。
- Compose #4267: read speed snapshots from Host configuration and publish
snapshot/stateFlowimmediately after setup and attachment. - Pause/resume #4268: repair buffering notifications overwriting pause/resume intent in the shared Java core, preserving preparation-time pause, preloading and
seek=false. - Matched IJK three-ABI update: ARM64 / ARMv7 / x86_64 FFmpeg/player/SDL tuples match their standalone ABI modules byte-for-byte and include:
- H.264 crop-only and single-axis visible-size propagation on MediaCodec output-format events.
- Opt-in H.264 crop rebuild: drain the old decoder generation, recreate and replay once for supported SPS/PPS+IDR transitions.
- Asynchronous MediaCodec EOS progress: allow output while waiting for an input slot instead of blocking drain. This applies automatically, including AVC/HEVC with the crop option disabled.
mediacodec-h264-crop-workaround is disabled by default (0) and limited to supported H.264 on asynchronous MediaCodec input; HEVC, software decoding and synchronous input are excluded. The FFmpeg n5.1.10 / OpenSSL 3.5.9 baseline is unchanged.
Local pre-release checks passed: 52 Debug/Release unit-test executions, 48 session regressions, Debug/Release demo builds, Release APK 16 KiB native-library packaging alignment, and local publication of all 15 modules under both channel coordinates with cast dependency isolation. Device playback was not revalidated on the final native-library bytes in this release round.
implementation 'io.github.carguo:gsyvideoplayer:14.1.0'
// Optional Compose integration / 按需添加 Compose 集成
implementation 'io.github.carguo:gsyvideoplayer-compose:14.1.0'
中文完整更新说明 · Full English changelog · 原生库选项与范围 / Native-library options and scope
Full comparison: v14.0.0...v14.1.0
0.89.0-rc.1
- React Native DevTools: Add support for inspecting WebSocket events in the Network panel (3d8a7a0296 by @huntie)
- Hermes: Bump Hermes to 260318099.0.7 (1b3e731478 by @fabriziocucci)
- Metro: Bump Metro to 0.88.0 (532d1ca446 by @robhogan)
- Metro: Make Metro's transform cache shareable across checkouts by pointing
asyncRequireModulePathatmetro:runtime/modules/asyncRequireinstead of an absolute path (2f9082fe08 by @robhogan) - React Native DevTools: Fix the initiator of WebSocket connections opened from framework code, such as Metro's Fast Refresh socket, in the Network panel (d66f5230fd by @huntie)
- Renderer: Fix
addViewAtcrash when a view that a parent still holds withstartViewTransitionis inserted into another parent (45152f1f85 by @pawicao)
Hermes V1 dSYMS:
ReactNativeDependencies dSYMs:
ReactNative Core dSYMs:
You can file issues or pick requests against this release here.
To help you upgrade to this version, you can use the Upgrade Helper ⚛️.
View the whole changelog in the CHANGELOG.md file.
4.3.0-beta06
- Improved embedded gallery viewer by #3302
- Added a Gallery settings group with column count, file size, format toggles, and semantic photo search
- Added pinch-to-zoom and a slider for 1–20 columns, with Auto as the default
- Added auto-hiding fast scroller that shows the date and time while dragging
- Improved Collage Maker
- 5684 new collage layouts
- Favorite layouts
- Customizable individual image slots
- Reusable collage styles
- Support up to 100 images per layout
- Export project for later reuse
- New UI with improved UX
- Added ability to enable gallery style selection in embedded picker by #3317
- Added ability to play 35 games while waiting for long-running tasks and dedicated tool to play them independently
- Dino
- Doodle Jump
- Flappy Bird
- Tower Builder
- Ping Pong
- 2048
- Snake
- Tetris
- Retro Racer
- Ricochet
- Asteroids
- Fruit Slice
- Knife Hit
- Missile Command
- River Hop
- Whack-a-Mole
- Simon Says
- Bubble Pop
- Fishing
- Super Hexagon
- Bomber
- Minesweeper
- Gravity Flip
- Maze Chaser
- ZigZag
- Timberman
- Orbit Survival
- Lunar Lander
- Brick Breaker
- Light Cycles
- Flight Control
- Basketball
- Laser Mirrors
- Flow Connect
- Balance Tower
- Fixed saving of new images when save to original folder enabled by #3326
- Various performance improvements and bug fixes
Full Changelog: https://github.com/T8RIN/ImageToolbox/compare/4.3.0-beta05...4.3.0-beta06
4.3.0-beta05
- Added Emoji Kitchen tool to create emoji combinations
- Added Jhm17 JPEG compression type
- Added ability to save and reuse styles in screenshot framing and code preview tools
- Improved native layer to respect interruptions
- Added 92 new filters:
- PAL Composite
- SECAM
- RF Reception
- SSTV Reception
- LCD Subpixels
- Physical Film Grain
- Film Negative Development
- AgX Tone Mapping
- Wavelet Denoise
- Daltonization
- Retro Hardware
- Risograph
- CMYK Press
- Thermal Receipt
- Photo Cross-Stitch
- Autostereogram
- Custom Palette Remap
- Contrast-Preserving Grayscale
- Guided Filter
- Rolling Guidance
- Non-Local Means Denoise
- Adaptive Binarization
- RGB Channel Registration
- Domain Transform Smoothing
- Film Halation
- Anamorphic Streaks
- Diffraction PSF
- Bayer Sensor Round-trip
- L0 Gradient Smoothing
- Wiener PSF Deconvolution
- Spectral Notch Filter
- DCT Coefficient Glitch
- Fourier Phase Scramble
- Capillary Ink Bleed
- Layered Paper Cut
- Anisotropic Kuwahara
- XDoG
- Contour Hatching
- Signed Distance Field
- Directional Embroidery
- TSP Single-line Drawing
- Riemersma
- Ostromoukhov
- Shiau–Fan
- Serpentine Floyd–Steinberg
- Serpentine Atkinson
- Serpentine Burkes
- Bayer 16×16
- Blue Noise
- Interleaved Gradient Noise
- Spiral Halftone
- Hexagonal Dot
- Wave Lines
- Clustered Dot
- Diamond
- Horizontal Lines
- Vertical Lines
- Diagonal Lines
- Crosshatch Matrix
- Height Ambient Occlusion
- Height Cast Shadows
- Refractive Caustics
- Thin Film Iridescence
- Diffraction Grating
- Flow Texture
- Hilbert Ribbon
- Maze Portrait
- Knitted Fabric
- Origami Relief
- Page Curl
- Curl Advection
- Histogram Mosaic
- Local Binary Pattern
- Local Entropy Map
- Fourier Spectrum
- Phase Only Reconstruction
- Spectral Saliency
- Morphological Reconstruction
- Nail String Art
- Folded Book
- Paper Quilling
- Lenticular Print
- Pin Art
- Ceramic Glaze
- Marquetry
- Photoelastic Stress
- Condensation
- Specular Highlight Suppression
- Gradient Domain Tone Mapping
- Shock Sharpening
- Color Spill Suppression
- Underwater Restoration
Full Changelog: https://github.com/T8RIN/ImageToolbox/compare/4.3.0-beta04...4.3.0-beta05
0.89.0-rc.0
AccessibilityState::selectedis nowstd::optional<bool>in C++ props, preserving an unsetselectedinstead of coercing it tofalse(af4d8eb08a by Calvin Liu)react-native/community-cli-pluginwill no longer be auto-detected fromreact-native. It must now be specified indevDependencies. (b26baaeba0 by @huntie)- Assets: Remove
react-native/assets-registry. UseAssetRegistryfromreact-nativeandreact-native/asset-utilsinstead. (56c48ac0eb by @huntie) - CLI: Platform registration config for the Community CLI is removed from the
react-nativepackage. No breaking change withreact-native-community/cli21.x (required). (be9fbdd0d5 by @huntie) - Fix
SectionListandVirtualizedSectionListscrollToLocationto account for section headers and sticky headers correctly. (0c35f57447 by @amroaltah) - Image: Fix explicit
fadeDurationbeing ignored on newly createdImages (98d6795e6d by @bartlomiejbloniarz) - Mark
unstable_batchedUpdatesas deprecated (f6fc189b8c by @retyui) - Remove deprecated
react/renderer/graphics/Geometry.handreact/renderer/graphics/conversions.h; include<React/Graphics.h>or<React/RendererCore.h>instead (1449daad5e by @j-piasecki) - Remove the generated changelog PR from the publish workflow (08b1f7054c by @fabriziocucci)
- Turn off
babel/plugin-transform-destructuringplugin (73711b301e by @retyui)
- New Architecture: Remove
DefaultNewArchitectureEntryPoint.bridgelessEnabledand the deprecated three-argumentload(turboModulesEnabled, fabricEnabled, bridgelessEnabled)overload; bridgeless is always enabled in the New Architecture (9b18b951ea by @christophpurrer) - Remove
DefaultNewArchitectureEntryPoint.fabricEnabled,turboModulesEnabled,concurrentReactEnabledandisConfigurationValid(ca2e11af51 by @christophpurrer) - Remove deprecated
rncore.h; includeFBReactNativeSpec.hand callFBReactNativeSpec_ModuleProviderinstead (d63648bac6 by @javache) - Text: Add
lineBreakandwordBreakprops toText(CSSline-break/word-break) for strict/loose line breaking and phrase-based breaking on Android 13+ (f736393946 by @iray-tno)
+moduleNameis now optional onRCTBridgeModuleinstead of required, so a TurboModule resolved via a module provider need not declare it (373385efc9 by @christophpurrer)- Delete legacy RCTNativeAnimatedModule from RN iOS (46662327fb by @christophpurrer)
- Install
React-cxxreactheaders undercxxreact/inside its framework whenUSE_FRAMEWORKSis enabled. Pods that include<cxxreact/...>without callinginstall_modules_dependenciesmust addReact_cxxreact.framework/HeaderstoHEADER_SEARCH_PATHS. (0a92baec87 by @j-piasecki) - Remove the deprecated
bridgelessEnabledproperty and the deprecatedinitWithBundleURLBlock:newArchEnabled:turboModuleEnabled:bridgelessEnabled:/initWithBundleURL:newArchEnabled:turboModuleEnabled:bridgelessEnabled:initializers fromRCTRootViewFactoryConfiguration; bridgeless is always enabled (2a9eca81b8 by @christophpurrer)
react-native/metro-babel-transformerpasses Metro's ownbabel/runtimeand its version toreact-native/babel-preset, when Metro provides them (89db5ce049 by @robhogan)- Add
<React/ComponentRegistry.h>umbrella header as the public entry point forreact/renderer/componentregistry(2975534d8b by @j-piasecki) - Add an
experimental_onSafeAreaInsetsChangeview prop, reporting the part of a view that is covered by the system UI, with a development warning for views that report their insets in a loop (8d658f4101 by @janicduplessis) - Add ArrayBuffer, DataView, typed array, boxed BigInt, and Error subclass support to structuredClone (14de25bb2d by @rubennorte)
- Add useAppState() hook for subscribing to app foreground/background state changes (7104c5ef36 by @Nedunchezhiyan-M)
- Added
ReactNativeVersion.hto publicreact/utilsmodule. (a35313a184 by @j-piasecki) - Added an umbrella header for the
react/renderer/coremodule (dcc872ae01 by @j-piasecki) - Added umbrella header for the
react/renderer/components/imagemodule (a9203b8fdd by @j-piasecki) - Added umbrella header for the
react/renderer/imagemanagermodule (be53e3a9a1 by @j-piasecki) - Allow C++ shadow node traits to be evaluated at compile time (73e3aeca88 by @javache)
- Babel: Allow
react-native/babel-presetto readenableBabelRuntimeandbabelRuntimeModuleNamefrom Babel caller data (168a0d7b53 by @cortinico) - Export the
ViewabilityConfigandViewabilityConfigCallbackPairtypes from the package root (932b34a51c by @rubennorte) - Expose
structuredCloneandDOMExceptionas global Web APIs (245bbfaf0a by @rubennorte) - Polyfill
Array.prototype.toSortedandArray.prototype.toReversedwhen the JavaScript runtime does not provide them (3ff956a2a2 by @javache) - Text: Add experimental longest-line width sizing for wrapped
Text(03ed284a2c by @Abbondanzo)
- Add
eventTimeto theonHWKeyEventdevice event payload (15bb7e23f2 by @bumjung) - Add
strictCxxApiEnabledGradle property to enforce React Native's C++ stable API in app native code (b5d9b6c03a by @j-piasecki) - Add
unstable_ImmediateUpdateMode support inupdateState. (0876643b91 by @intergalacticspacehighway) - Add
YogaNode.setNodeTypeto select pixel rounding for measured nodes (928fd149cb by @pentiumao) - Add support for Activity Result API for native modules (ec2b536e14 by @matinzd)
- Add support for direct progress accessibility actions (1413a59de6 by @AndrewBlackMeta)
- Android: stop re-arming the idle DISPATCH_UI Choreographer frame callback (behind feature flag) (8baeb2deeb by @capt-muji)
- C++
TraceSectionmarkers now appear in Perfetto and systrace captures (7728787c25 by @tomekzaw) - Combine the 0.88 RC sections into v0.88.0 (68b7ce2abe by @fabriziocucci)
- Introduce PCH for codegen targets to improve compilation time (7ca1b42002 by @lukmccall)
- Log unrecognized font families, matching iOS (c1401a16a0 by @mosab-nasrallah)
AccessibilityInfo.isShowBordersEnabled()andshowBordersChanged(Show Borders, formerly Button Shapes) (62a1fc186d by @camilopires)- Add
-[RCTHost jsCallInvoker]to access the React instance'sCallInvoker(8f58866394 by @potomak) - Add
RN_STRICT_APIandRN_ALLOW_FRAMEWORKSopt-ins for the Swift Package Manager setup to enforce React Native's C++ stable API in the app's native code (47f744d296 by @coado) - Add injectable launchOptions and performanceLogger module APIs (9d7447ab0d by @christophpurrer)
- CocoaPods: Add
RN_STRICT_APIandRN_ALLOW_FRAMEWORKSCocoaPods opt-ins to enforce React Native's C++ stable API in app and library native code (0f1c6ae87d by @coado)
RuntimeScheduler.hno longer transitively includesPerformanceEntryReporter.horShadowTreeRevisionConsistencyManager.h; include them directly where the complete types are needed (7aff51e2d1 by @j-piasecki)- Animated: Avoid per-call allocations in Animated string and color interpolation (efc5161a8d by @shubh73)
- Avoid VoiceOver interruptions from hidden text updates (e04aaf62f7 by @sbuggay)
- Babel preset: Hermes V1 profiles no longer lower
u-flag regexes, which Hermes compiles natively (92629fd498 by @robhogan) - Building a
ShadowViewfor a View node no longer uses adynamic_castto read its layout metrics (79a562960d by @hryhoriiK97) - Bump
memoize-onepackage to the latest version (adc45a8a03 by @retyui) - Change default transform profile to 'hermes-stable' (97bea4625d by @retyui)
- Changed builds to not probe Maven for
1000.0.0versioned artifacts. (b5c152237f by @coado) - Codegen: Codegen-generated C++ includes React Native through module umbrella headers (095e563fb3 by @j-piasecki)
- Commits under a
display: 'none'view no longer re-run layout over the whole surface when something under it was created or changed while it was hidden (fe0df65653 by @mozzius) - Enable prepared text layout caching and Android text measurement optimizations by default (a5cb48b2fc by @Abbondanzo)
- Expose
enableMountingCoordinatorPullModelAndroidin public C++ feature flags and moveBackgroundImagePropsConversions.hto "for frameworks" headers (fc4e7061e2 by @j-piasecki) - Metro: Bump Metro minimum to 0.87.2 (b5c65ce265 by @robhogan)
- Move
RecoverableErrorfrom private headers to "for frameworks" headers (f9c7007dc9 by @j-piasecki) - RCTDeviceEventEmitter.emit no longer allocates closures on every emit when tracing is disabled, reducing per-event allocation on the native-to-JS event path (7f6043bdb0 by @secitr)
- React Native DevTools: Upgrade the standalone app to Electron 43, add app-menu shortcuts, and add a macOS 26/27 icon (861635c35a by generatedunixname1395667395051502)
- Replace never-shared std::shared_mutex with std::mutex in ShadowNodeFamily (64217380a3 by @amillez)
- ShadowNode: Avoid a redundant copy of the children list in
ShadowNode::cloneTreeandUIManager::updateShadowTree(d0078c23d8 by @shubh73) - The differ no longer copies its view culling context for every child when view culling is off (7230b63b3e by @hryhoriiK97)
- VirtualizedList: Reduce allocations in the
VirtualizedListrender and scroll path (avoid per-renderSetallocation forstickyHeaderIndices, per-scroll-eventMapiterator for the empty nested-list collection, and per-callorientationobject allocation) (731ae45ae6 by @secitr) - VirtualizedList: VirtualizedList: Skip the cells state update when the render window doesn't change (2c635d7473 by @tomekzaw)
- Yoga: Yoga layout no longer uses
dynamic_castfor every child to check its type (392b7645b3 by @hryhoriiK97)
- Build touch event payloads in native code, making each touch event cheaper on the main thread (f5feafd404 by @hryhoriiK97)
- Bump fbjni to 0.8.1 (1d13ec9889 by @cortinico)
- Bump NDK to r28c, fbjni 0.8.1 and fresco 3.9.0 (a948811cca by @Kudo)
- Images from the app bundle look up their resource without throwing an exception (98291bcb99 by @hryhoriiK97)
- Include React Native through module umbrella headers in app-facing JNI headers and the generated autolinking header (738e793b78 by @j-piasecki)
- Kotlin: Bump Kotlin to 2.2.10 to match the version required by AGP 9.2.1 (f03f6c2b85 by @lukmccall)
- Kotlin: Bumped the Gradle plugin minimum Kotlin API version to 2.1 (3cee68fa7a by @Abbondanzo)
- Kotlin: Update Kotlin to 2.3.21 (43a49f7fe3 by @cortinico)
- Parse each TurboModule method's JNI signature once instead of on every call (f7de20301c by @hryhoriiK97)
- Share one JNI global reference between copies of a prepared text layout, instead of creating one per copy (9c7b0f5faf by @hryhoriiK97)
- Skip a redundant JNI Object.toString() call in WritableNativeMap.putString. (ba1ede621c by @riteshshukla04)
- Text: Skip an unnecessary measuring pass when laying out
Text(3f5c2f3dbb by @tomekzaw) - Text: Text nodes cloned without changes share their measured layout instead of creating a new JNI global reference (0e041ddf8f by @hryhoriiK97)
- Update
targetSdkto 37 (9fae71c2dd by @alanjhughes) - Upgrade AndroidX Activity to 1.10.1 (3b755040db by @Abbondanzo)
- Views with four equal rounded corners get their outline without building a path (42ba24ab03 by @hryhoriiK97)
RCTAppSetupUtils.hno longer transitively importsHermesExecutorFactory.h(a385cecbea by @j-piasecki)RCTAppSetupUtils.hno longer transitively importsJSIExecutor.horJSExecutor.h(3eb901e31a by @j-piasecki)- Add nullability annotations to
RCTBridgeModule.h. Module registry and view registry lookups,methodsToExport, promise resolve/reject arguments, and weak module properties such asbridgeandmoduleRegistryare nownullable.methodQueueis now nonnull, so Swift overrides must be declared asDispatchQueuerather thanDispatchQueue!. (08f96fefe4 by generatedunixname1608173377072046) - Build a paragraph's NSAttributedString without copying each text fragment or re-attributing its runs (7fc58f2192 by @hryhoriiK97)
- Include
errnoand its description inRCTJavaScriptLoaderbundle open/stat errors (156a9a29a9 by generatedunixname1608173377072046) - Look up each TurboModule method's signature once instead of on every call (1d1fade902 by @hryhoriiK97)
- Pass
AttributedStringby const reference inRCTTextLayoutManagerand add a move constructor forAttributedStringBox. (0ffaff80a3 by @dheerajkoppu) - StatusBar: Reland iOS 27 StatusBar fix with tvOS guards (edf2b86e63 by @cipolleschi)
- Strings passed from JS to native modules convert faster (ed15270c6c by @hryhoriiK97)
- SwiftPM: SwiftPM:
spm addandspm updatewrite React Native's build settings toReactNativeSPM/ReactNativeSPM.xcconfigand its build scripts toReactNativeSPM/Scripts/, so a version bump no longer changesproject.pbxproj. A configuration that uses its own xcconfig must now#includethe generated file, and a target setting that hides React Native's value must add$(inherited).spmprints the exact fix in both cases. (6a2c7c2734 by @chrfalch)
JavaTurboModule::invokeJavaMethodwith acachedMethodIDargument; use the overload without it (f78bdd4aea by @hryhoriiK97)
- Deprecate the legacy View-based surface lifecycle methods in
UIManager. (d4d0813969 by @javache)
- Deprecate unused old-architecture
RCTBridgeAPIs ahead of removal (fcb13c5171 by @christophpurrer) - Mark
-[RCTSurfacePresenter addObserver:]as deprecated for the compiler. UseRCTMountingTransactionObserverCoordinatorinstead. (9979e142a7 by @tjzel)
- Remove the deprecated
hasTVPreferredFocusprop (6622ee55a1 by @Abbondanzo) - Remove the sample TurboModule from React Native's public API (4ffc4a6523 by @Abbondanzo)
- Remove the unused
maximumFontSizeparagraph attribute (7e02fc7e68 by @conner1reimers) - Remove unstable_getScrollParent. Implement scroll-parent discovery in userland instead. (3818b20eed by @rubennorte)
- Removed unused
InspectorData.h(0a9bf3292e by @j-piasecki) - TextInput: Remove deprecated
TextInputblurOnSubmitprop (usesubmitBehaviorinstead) (ab373989c3 by @zoontek)
- APIs: Remove experimental split-bundle loading APIs (2771618619 by @javache)
- Clear the border path effect when borderStyle is removed on Android (01145c9a7f by @lazerg)
- API: Remove deprecated RCTProfile systrace API (d3c2bb8ed4 by @christophpurrer)
- Deprecate
RCTBridge.bundleURL,setRCTTurboModuleRegistry:, andbridgeModuleDecorator(1eb24d4b31 by @christophpurrer) - Deprecate never-posted invalidation notifications still observed by Skia and Reanimated (490c4023bb by @christophpurrer)
- Remove
RCTInstanceSetRuntimeDiagnosticFlagsandRCTInstanceRuntimeDiagnosticFlags(935f73302b by @javache) - Remove dead
RCTBridgeflag functions,batchDidComplete, and unused callback typedef (01d55273bc by @christophpurrer) - Remove deprecated
RCTBridgeinitializers (bfa64ad01a by @christophpurrer) - Remove deprecated
RCTBridgeDelegatesourceURLForBridge:(34795cbc36 by @christophpurrer) - Remove deprecated
RCTFabricSurfacebridge initializer andRCTBridgesurface-presenter category (d4fee6d983 by @christophpurrer) - Remove deprecated
RCTModuleDataclass and its call-invoker provider protocol (f76f251b62 by @christophpurrer) - Remove the non-functional Views counter from the PerfMonitor HUD (200245eb09 by @christophpurrer)
- Remove unused
RCTBridge (Inspector)category (e57dcb3cc4 by @christophpurrer) - Remove unused
RCTCxxBridgeDelegateprotocol (e362239300 by @christophpurrer) - Remove unused per-module
RCTBridgeaccessors (0c68446f08 by @christophpurrer) - Stop setting the removed bridge key in RCTBlobManagerTests (13c29f0a13 by @lazerg)
adjustsFontSizeToFittext grows back when its container grows (db5c52de8b by @tomekzaw)Easing.bezier: fix wrong values on steep curves such as(1, 0, 0, 1); input outside [0, 1] now saturates (2ae713e898 by @greweb)hsl()colors with an alpha, and alphas given as a percentage such asrgb(0 128 0 / 50%), are no longer rejected (3aee67bcb6 by @lazerg)Pressabilitynow invokes the currentonHoverIn/onHoverOutrather than the ones captured when its event handlers were created (8a4cf38576 by @rozele)- Align the
react-native/no-deep-importsauto-fix map with the package's public API (29900fca26 by @rubennorte) - An Animated interpolation of a string that contains an
rgb(),hsl()orhwb()color, such as a box shadow, interpolates the whole string instead of collapsing to the color (1adb75ea3b by @YevheniiKotyrlo) - Avoid exponential min-content measurement during automatic minimum sizing of nested flex containers (6e2edef96e by @adityasharat)
- Babel:
experimentalImportSupportin a Metro config now takes effect whenreact-native/babel-presetis named in a project Babel config (a24bd322d7 by @shubh73) - Babel: Preserve side effects from discarded Platform.select property initializers in the Babel preset. (f3fb55031d by @mfkrause)
- Babel: Preserve side effects from discarded Platform.select property initializers in the Babel preset. (f654cade48 by @mfkrause)
- Codegen: Codegen now also reads
react-native.config.cjs, so libraries declared in it are no longer skipped in ESM projects (583c8f3afb by @CAMOBAP) - Do not report viewable items for a cross-orientation nested list while its parent row is off screen (4fec40e69d by @amroaltah)
- ESLint: Fixed the issue when using the flat config with ESLint v9. (099bcb444e by @tcK1)
- Fix "Unable to fetch script source" when debugging code evaluated in the DevTools console (e8c06bb08b by @vzaidman)
- Fix
react-native/jest-presetfailing to resolvereact-nativeand to transform preset sources under pnpm and Yarn pnpm-mode installs (b71d466561 by @amroaltah) - Fix
VirtualViewinitial mode wheninitialHiddenis not sent on creation (cf583810a1 by @bartlomiejbloniarz) - Fix a flex line collapsing to its minimum sizes when the first item clamps to its min or max main size, behind the new
FlexFirstPassUsesRunningTotalserrata (set by default) (ca7acf62c5 by @Dagur) - Fix deadlock in
RuntimeSchedulerwhen a task destructor schedules work while the queues are cleared after an error (3181abc5c9 by @hcbylmz) - Fix lost taps after a touched view unmounts when EventTarget event dispatching is enabled (eb90a8d251 by @rubennorte)
- Fix native dispatcher callback ownership and shutdown synchronization (03355ef9a1 by @Abbondanzo)
- Fix native-driven animations stepping backward when a native event update runs between frames with the shared animated backend (dee5bb5762 by @markv)
- Fix Platform.select inlining producing invalid output for object methods when discarding impure initializers is skipped (88748a7973 by @vzaidman)
- Fix setLayoutAnimationEnabled not applying the value parameter (550aadd200 by @Nedunchezhiyan-M)
- Fix stale layout when a child switches to
display: contentsafter being inserted (19a6722f91 by @kwy404) - Fix the differ creating a mounted view again, or deleting a moved view, when a child with a negative
zIndexmoves in a nested flatten/unflatten (361bc240e4 by @pawicao) - Fix the inspector proxy leaking a pages polling timer, and sending duplicate
getPagesrequests, each time a device reconnects with the same device ID (268b3029ef by @vzaidman) - Fix the responder not being released when a touch ends after its view unmounted (f754dbd20a by @lazerg)
- Fix VirtualizedSectionList._setUpdateHighlightFor deleting from wrong target (memory leak) (0941e95391 by @bl4987637-code)
- Handle native component event names that shadow Object prototype properties. (665beff9df by @OskarEichler)
- Hermes: Babel preset: Hermes profiles no longer lower generators,
for...of, optional chaining, nullish coalescing or optional catch binding in dev, matching release (ba0b3dbd6c by @robhogan) - Hermes: Babel preset: Hermes profiles no longer lower generators,
for...of, optional chaining, nullish coalescing or optional catch binding in dev, matching release (ca952774d6 by @robhogan) - Hermes: Retain Unicode regex semantics while lowering property escapes for Hermes builds (6e22123d6f by @andrewdacenko)
- Image: Fix explicit
resizeMode="stretch"being ignored on newly created AndroidImages (e560782758 by @bartlomiejbloniarz) - Install globalEvalWithSourceUrl on bridgeless ReactInstance so debug bundle loaders can evaluate split bundles via JSI instead of eval() (2a2ccaa522 by @abzokhattab)
- IntersectionObserver: IntersectionObserver rootMargin now affects intersection against a clipping root (5646c31dff by @edkimmel)
- Keep percentages in
translateX/translateYstring transforms and parse numbers without a leading zero (bd9348a32a by @camchis) - Metro: Scope Metro
INTERNAL_CALLSITES_REGEXto thereact-nativepackage to avoid collapsing unrelated frames (03737541b1 by @vzaidman) - New Architecture: Fix
minimumFontScalewithadjustsFontSizeToFitin the New Architecture (b7357896e2 by @conner1reimers) - Non-layout props animated on the shared animation backend no longer freeze while the same view or another view on the surface animates a layout prop (14ace9beaa by @bartlomiejbloniarz)
- Preserve an explicit null
thisArgin NodeList.forEach callbacks. (822cfc4e40 by @OskarEichler) - Preserve NaN and signed zero in DOMRect values. (99aefad9fb by @OskarEichler)
- React Native DevTools: Fix launch failure when Chromium uses the SUID sandbox (Linux) (954a7c2a97 by @huntie)
- React Native DevTools: Fix React Native DevTools staying open but unresponsive after the debugged React Native instance is destroyed (eec38e3c82 by @vzaidman)
- Reduce generated native component bundle overhead (f156ef2b02 by @rubennorte)
- Reject missing and non-function PerformanceObserver callbacks during construction. (c2da17514e by @OskarEichler)
- Reset a removed
shadowRadius,shadowOffset,editableorpersistentScrollbarprop to its default (86695d8eb6 by @YevheniiKotyrlo) - Restore public
parseUnprocessedTransformOriginStringinreact/renderer/components/view/conversions.h(7b11d48538 by @cipolleschi) - Skip HMR client setup when the JS bundle was not loaded from Metro (f109c0af86 by @javache)
- Sort URLSearchParams names in UTF-16 code-unit order instead of locale order. (778fef746d by @Marve10s)
- Stop
no-deep-importsfrom reportingreact-native/package.json, which is a supported entry point (46d00410e8 by @ahmdshrif) - Text: Avoid state updates and re-layout of unchanged
Textsiblings when a sibling changes (e7766ab2fa by @tomekzaw) - Text inside Modal now updates after a live font scale change (e8e63cf79c by @simongt)
- Toggling Touchables in the Element Inspector no longer remounts the app and resets its state (d194d8b5c6 by @LESANF)
- TypeScript: Fix the legacy TypeScript
ImageStyletype rejecting validViewStyleprops such asfilter,boxShadowandmixBlendMode(278e7f93c8 by @ramya-2196) - Validate invalid PerformanceObserver observe option combinations before native registration (e0224fd40b by @ya-nsh)
- VirtualizedList: Avoid delaying urgent
VirtualizedListrendering after queued no-op updates (6dcc04bf21 by @javache) - VirtualizedList: VirtualizedList: clear the pending batch-update timer id in componentWillUnmount so a list hidden and revived by Suspense (react-freeze / freezeOnBlur) resumes rendering new cells (381d74d788 by @twelvearrays)
- WebSocket no longer dispatches
messageevents afterclose()has been called (a6c0c470ad by @lazerg)
- A
NaNor infiniteelevation, or deprecatedscaleXorscaleY, no longer crashes the app on Android 9 and later (d8789c6212 by @YevheniiKotyrlo) - A
Viewwitharia-liveoraccessibilityLiveRegionis no longer flattened, so the live region is announced (5e13324903 by @faciledictu) - Avoid blocking the UI thread while selecting multi-source images (cf1fc01ce9 by @Abbondanzo)
- Avoid unnecessary getConstantsForViewManager calls during UIManager initialization. (da7c29f6d7 by @fairysword)
- Avoid warning when clearing percentage border radii (5e6b1081bc by @Abbondanzo)
- Correct safe-area inset measurements for scaled views and views clipped by ancestors. (9641acdf30 by @Abbondanzo)
- Drawing a view group no longer reads every sibling's mix-blend-mode for each child it draws (089a101544 by @YevheniiKotyrlo)
- Export the
SafeAreaInsetstype (11f37bd6e7 by @janicduplessis) - Fix
getCurrentActivity()staying null after the Activity is destroyed during a reload (ea5882bfb8 by @lazerg) - Fix
getOutlineWidthreturning the outline offset (54b5f22c33 by @Abbondanzo) - Fix
PlatformColortheme attributes that resolve to a ColorStateList, such as?attr/textColorPrimary(4d536fa8cd by @lazerg) - Fix
shadowColor,outlineOffsetandoutlineWidthnot resetting to their defaults on components with a codegen view manager delegate (dfed2d925d by @shubh73) - Fix
Switchlosing its outline,boxShadowandthumbColorripple color whenbackgroundColoris set (19d6d171f7 by @shubh73) - Fix accessibilityState, a removed accessibilityRole, role or accessibilityValue, and role="none" with Props 2.0 (4c103143c2 by @bartlomiejbloniarz)
- Fix Activity Result launcher compilation across AndroidX source variants (d7ff82ebe4 by @Abbondanzo)
- Fix bottom-start and bottom-end border radii resolving to the wrong corners in RTL when left/right style swapping is disabled. (202d93931c by @ddx533534)
- Fix crash in
UiThreadUtilwhen the main handler is first accessed from multiple threads at once (65b3e647f5 by @locnp-active) - Fix double text decorations rendering as a solid band when prepared text layout is enabled (6f6fa0ad9f by @Abbondanzo)
- Fix mouse wheel and joystick scrolling direction in inverted
FlatList(30e2d93b40 by William Khoe) - Fix preallocated views leaking when
enableMountingCoordinatorPullModelAndroidis enabled (7624c9cacb by @bartlomiejbloniarz) - Fix Pressable and TouchableNativeFeedback losing their background color and ripple when using a borderless ripple (ca3e76a7cd by @jasozh)
- Fix VirtualView clipping on-screen content when its parent offset was not computed at attach time (f9340f07dc by generatedunixname1608173377072046)
- Fix visible
VirtualViewchildren being clipped when an ancestor is positioned before attachment (8c2ce771d8 by @cortinico) - Fix WebSocket cookie lookup dropping path-scoped cookies (0eb9b300b6 by @lazerg)
- Hermes: Fix building Hermes from source on Windows failing on the JSI_DIR path (7b21e74587 by @YevheniiKotyrlo)
- Hermes: Fix Hermes source builds after the Hermes repository move (f6a5042c84 by @javache)
- Image: Fix Image sources, headers and a removed tintColor with Props 2.0 (5e2f85a793 by @bartlomiejbloniarz)
- Invalidate the Android autolinking cache when
pnpm-lock.yamlchanges (cd2de187e8 by @JoelTowell) - Make the view manager prop setter caches thread-safe (3b4abb3c7a by @brownrice777)
- MapBuffer: Make the
React/View.h,React/Debug.handReact/MapBuffer.humbrella headers resolvable in CMake builds (b936db95db by @j-piasecki) - Modal: Fix Android navigation bar transparency for Modal (b4d57abe12 by @jasozh)
- Modal: Fix crash when dismissing a Modal whose Activity has already been destroyed (7439937ef9 by generatedunixname1608173377072046)
- Preserve complete text for accessibility when prepared text layouts are ellipsized (6afe9f134a by @javache)
- Preserve explicitly transparent colors during Props 2.0 reconciliation. (022458fbb6 by @ngocdevv)
- Preserve safe-area updates for cancelling transforms and match iOS notification precision. (95941fd368 by @Abbondanzo)
- Pressing the menu key while the dev menu is open now closes it (0e9d314184 by @alanjhughes)
- Prevent a crash when resolving RTL layout direction on Android 6 (eaa9d7f3c8 by Shreesh Ayachit)
- Prevent invalid
accessibilityRolevalues from crashing the app. (9a20e06f51 by @Abbondanzo) - Prevent RTL line-start glyph ink from clipping on Android 15 and later (57f408012d by @ngocdevv)
- Prevent TextInputs from interfering with nested scroll gestures (7974af7d9f by @jasozh)
- Pull model: fix batches applied out of order when a surface's root view attaches (879df0514e by @bartlomiejbloniarz)
- Pull model: mount the commits of starting and stopping surfaces, and fix a freeze when the legacy
stopSurface(int)runs on the UI thread (1423ef001d by @bartlomiejbloniarz) - Re-copy the prefab headers when a header under ReactCommon changes (bf4fac3587 by @YevheniiKotyrlo)
- Recycled views no longer keep the accessibility state of their previous props (6f73542a45 by @YevheniiKotyrlo)
- Remove legacy TimingModule.kt (e15b667cd3 by @christophpurrer)
- Removing
accessibilityValueno longer leaves its text in the content description or drops theaccessibilityLabel(25b05acd73 by @lazerg) - Restore the text input class for URL keyboard types. (0ca5cec66b by @dajiaohuang)
- Restore the text input class for visible-password keyboard types (f99303c9f5 by @YevheniiKotyrlo)
- ScrollView: Finish interrupted ScrollView drags when receiving ACTION_CANCEL. (0f17f27010 by @ddx533534)
- ScrollView: Fix crash in ScrollView accessibility delegate when
accessibilityCollectionis set and a child (e.g. a list header or footer) has noaccessibilityCollectionItem(2915fe02ca by @iray-tno) - ScrollView: Fix crash when setting a percentage borderRadius on Text, TextInput, and ScrollView (5fc6ccb165 by @sbaiahmed1)
- ScrollView: Fix Text letterSpacing and ScrollView scrollsChildToFocus, snapToAlignment, decelerationRate, nestedScrollEnabled and sendMomentumEvents with Props 2.0 (973b31ba57 by @bartlomiejbloniarz)
- Stop logging "Unsupported type for radius property: Null" for gradient color stops without an explicit position (585b28c5f0 by @tshmieldev)
- Text:
aria-liveonTextnow setsaccessibilityLiveRegion(9de6471df2 by @faciledictu) - Text: Fix
ellipsizeMode="clip"being ignored on newly createdText(8cd9b763e3 by @bartlomiejbloniarz) - Text: Fix
fontVariantbeing ignored onTextthat doesn't also setfontFamily,fontWeightorfontStyle(ababa4de06 by Bora Shim) - Text: Fix multi-paragraph RTL
Textwith blank or LTR lines being drawn off-screen on Android 15+ (7b6516eb11 by @fkgozali) - Text: Fix single-line LTR
Textbeing ellipsized inside its measured width on Android 15+ (12e066bfbb by generatedunixname1608173377072046) - Text: Respect maxFontSizeMultiplier for lineHeight and letterSpacing in Text (c93ff90778 by @sivefunc)
- Text: Text: the last line no longer disappears on Android 15+ when a font's glyphs overhang their advance (ReactTextView now breaks lines on advances, matching measurement) (dcdb52bc80 by @idoyana)
- TextInput: Fix
TextInputoutline collapsing when its padding is below the theme default (da42db9c90 by @mehulg-meta) - TextInput: Fix TextInput crash when an Enter key-up triggers native focus search (04ccd832ab by @christophpurrer)
- TextInput: Prevent TextInput from preventing scroll gestures (99fca5fcaf by @jasozh)
- View: Fix View background, perspective, border width, shadow and gradient props with Props 2.0 (0f03dd9a4c by @bartlomiejbloniarz)
- Warn when dev support is enabled but packager server access is disabled (d365e6499a by @javache)
role="slider"now gets the adjustable accessibility trait, likeaccessibilityRole="adjustable"(05f99a7d25 by @jeltehomminga)spm_dependencyembeds the dynamic frameworks of Swift packages in the app, and takesembed_frameworksfor frameworks named differently from their product (d7878263ca by @mfazekas)- Allow Metro reload after an initial bundle-load failure. (df86c5e2a4 by @janicduplessis)
- Apply
borderCurvechanges that are not accompanied by another border prop change (c4356db573 by @tshmieldev) - Clear the development loading banner when its React Native host is invalidated, including pending messages that could appear after teardown. (62002039c0 by @fairysword)
- CocoaPods: Apply React Native's minimum iOS deployment target to CocoaPods resource bundles. (d45fc2d289 by @Marve10s)
- Fix "module map file not found" for
spm_dependencypods whose module name differs from the pod name (87c3e8f5dc by @mfazekas) - Fix
'folly/coro/Coroutine.h' file not foundin libraries that set their own folly compiler flags (52efed6437 by @cipolleschi) - Fix
TextInputdataDetectorTypes="all"having no effect on the New Architecture (0bd2cb1b42 by @Cedric921) - Fix Cmd+D and other modifier key commands failing to open the Dev Menu when a view is the first responder (d36f77d7e1 by @vzaidman)
- Fix data race on accessibility content size multipliers in
RCTAccessibilityManager(ea2ca1b921 by @christophpurrer) - Fix deadlock in
RCTInstanceinvalidation when a surface observer calls into JS (88d296713c by @zeyap) - Fix missing nullability annotations in networking headers. (c7429b0e97 by @mrousavy)
- Fix remaining main-thread watchdog hang in PushNotificationIOS.setApplicationIconBadgeNumber (79adf3498f by @fkgozali)
- Fix the
cancelledparameter type ofRCTInspectorNetworkReporter'sreportRequestFailed:cancelled:to match its declaration (3e5a624d2d by @Saadnajmi) - Hermes: Fix Hermes Debug link failures after installing another pod following a Release build. (8bfa9dd2ae by @fairysword)
- Hide the misplaced iOS 26 scroll edge effects on inverted ScrollViews (3b8f1f8225 by Calvin Liu)
- Image: Emit
Image'sonLoadStartbeforeonLoad/onLoadEndwhen the image request has already completed (5d84f62df1 by @SatyamBansal) - Keep a
RCT_jsLocationpassed as a launch argument when the packager answers/statuslate, instead of switching to a guessed host (1af1186b78 by @YevheniiKotyrlo) - Modal: Fix Modal staying onscreen when dismissed while presenting a child view controller (f20f857241 by @lazerg)
- Natural text alignment follows the layout direction for LTR text, not the process language (a340eec183 by @qutrek)
- Prevent an accessibility module startup crash on early iOS 26.1 betas (f9855add37 by @javache)
- Prevent unsuccessful tvOS focus requests from emitting stale focus events (3e897cfdf8 by @sbuggay)
- Process at most one synchronous event beat per Core Animation commit, so a mount performed during the display phase cannot re-enter it without bound (c4b3894955 by @Abbondanzo)
- React-utils: link
platform/iosheaders atreact/utils/…in non-frameworks builds instead of a duplicatedreact/utils/react/utils/…, restoring#include <react/utils/…>and<React/Utils.h>(024d5dafd5 by @zhongwuzw) - Remove legacy RCTTimingModule (0e01003f53 by @christophpurrer)
- RemoveClippedSubviews is kept on recycled views (ff78e95e59 by @mozzius)
- Render a view untransformed when its transform is not finite, instead of hiding it and the siblings drawn before it (a613baf9d1 by @YevheniiKotyrlo)
- Render selectable text when prepared text layout is enabled (099915674f by @abskmeta)
- Report zero-height keyboard show notifications with no focused text field as
keyboardWillHide/keyboardDidHide(c99947ed4b by @ybcd00) - Reuse prefetched images for subsequent sized image requests (0e87de0fd9 by @CHANDRAMOHANnegi)
- Reveal multi-line text inputs when using KeyboardAvoidingView with a ScrollView (7ce27d0d07 by @jasozh)
- ScrollView: Fix recycled RTL horizontal ScrollView starting at the end instead of the start (51db0e4b3a by @aljadan)
- Skip third-party components whose class is not linked instead of crashing at launch (acc0cca710 by @YevheniiKotyrlo)
- Stop apps from requesting the sample TurboModule that only rn-tester provides (8f5355575a by @alanjhughes)
- Strings returned from native modules to JS convert faster, are no longer truncated at a
\0character, and are no longer replaced with an empty string when they contain a lone surrogate (4fac9c8f35 by @hryhoriiK97) - SwiftPM: scaffolded
Package.swiftwritesresources:beforepublicHeadersPath:, so libraries with podspec resources and public headers resolve (d576b40bff by @chrfalch) - Switch: Fix crash in
SwitchwhenonChangefires after the view has been recycled (7612536be3 by anvarbek) - Switch: Report a disabled
Switchas disabled to VoiceOver and XCUITest (7bba6225af by @arun279) - Text: Fix
Textcontaining only "I" being measured zero wide after an emptyTextwith the same style was measured (4b0a6ebc67 by @parthematics) - Text: Fix words jumping between lines while
LayoutAnimationresizes aText(b97bd12bc4 by @tomekzaw) - Text: Text no longer redraws when only its position changes, such as when content above it changes height (631fd89f6a by @hryhoriiK97)
- Text: Text no longer renders clipped when mounted from a synchronous event during layout (7bee8abb69 by @janicduplessis)
- TextInput: Avoid a synchronous main-thread pasteboard query (and possible app hang) when a focused TextInput's keyboard becomes active on app foreground (79c6c23061 by generatedunixname1608173377072046)
- TextInput: Fix
TextInputplaceholder drawn below centre after its view is reused from aTextInputwithlineHeight(8f5a1c0a8f by @jkasprzyk17) - TextInput: Fix caret and text of a single-line
TextInputdrawn above center while focused, after its view was reused from aTextInputwith a larger font (e10d6ba3a6 by @jkasprzyk17) - TextInput: Preserve TextInput returnKeyType when switching between single-line and multiline backing views. (e0159c1f03 by @jamfromouterspace)
- TextInput: Preserve transformed
TextInputedits without synchronously rewriting text inside UIKit delegate callbacks (6f67e185ad by @javache) - TextInput: Preserve transformed
TextInputedits without synchronously rewriting text inside UIKit delegate callbacks (ac766e6217 by @javache) - View:
aria-modalonViewnow setsaccessibilityViewIsModal(e3437cb8f0 by @faciledictu) - View: Opacity changes no longer rebuild a View's borders, shadows and background layers, which made opacity animations over many styled Views drop frames (51d3e67af8 by @hryhoriiK97)
- Views no longer rebuild their layer styling (borders, shadows, background and mask layers) when only their position changes (c9d84b06d8 by @hryhoriiK97)
- VoiceOver announces "collapsed" for
aria-expanded={false}on the new architecture (1db1d893b2 by @lazerg)
- Accept unitless zero stops and reject invalid layers in backgroundImage strings (54905a2006 by @lazerg)
- Always run cmake --build for Fantom's tester (c29a37cf8e by @lazerg)
- Blob: Fix Blob.slice end handling when start is omitted (7619e9c58b by @Shubham-Padkonde)
- Build the scroll event payload in one JNI call (3908ef3153 by @tomekzaw)
- Bump nlohmann_json to 3.12.0 so Fantom's tester builds with newer Clang (4930592830 by @lazerg)
- Clear Fantom's Metro shutdown timer once the server closes (3feed51bda by @lazerg)
- Compare prop name pointers before their characters in RawPropsParser (3b88cb2c67 by @hryhoriiK97)
- Create StateWrapperImpl from C++ with its state (c48341282e by @tomekzaw)
- Default omitted filter amounts to 1 and reject px in processFilter (888784ce89 by @lazerg)
- Find a LongLivedObject in its collection without walking it (caf9cbcd63 by @hryhoriiK97)
- Fix
Style::operator==ignoringboxSizing(e0d0f011ee by Open Source Bot) - Fix: correct typos in runtime invariant messages in virtualized-lists (866034f97c by @saiyam-jain-dev)
- Flow: Upgrade Flow in fbsource (892ea5e45d by generatedunixname1026736676487289)
- Flow: Upgrade Flow in fbsource (cd500a780b by generatedunixname1026736676487289)
- Hermes: Bump Hermes to 260318099.0.6 (4eb4d2e795 by @fabriziocucci)
- Migrate DeviceInfoModuleTest off JUnit3 TestCase base (7fc911afd9 by Nivaldo Bondança)
- Pause RNTester visual regression checks on pull requests (60e7809268 by @cortinico)
- Perf(virtualized-lists): drop dead stale-index filter in ViewabilityHelper (9c3e743a6f by @seyedmostafahasani)
- Start the Fantom tester's inspector only for --inspectorPort (a59500e088 by @lazerg)
- SwiftPM: SwiftPM autolinking: don't warn about spm fields mirrored in swiftpmConfig (138c1a9a6e by @chrfalch)
- Temporarily disable Maestro Cloud tests in CI (745b4f355e by @cipolleschi)
- Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (0dbd23bb3f by Intl Scheduler)
- Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (51e9a97775 by Intl Scheduler)
- Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (77e25f68de by Intl Scheduler)
- Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (be5235d263 by Intl Scheduler)
- Translation auto-update for Apps/Wilde/scripts/intl-config.json on master (df85975884 by Intl Scheduler)
- Upgrade Flow in fbsource (2761132459 by @SamChou19815)
- Xplat/js/react-native-github/packages/react-native/ReactCommon/jsi/jsi/JSIDynamic.cpp (de350e65e1 by generatedunixname1563563004708334)
- Xplat/js/react-native-github/packages/react-native/ReactCommon/react/renderer/components/text/ParagraphEventEmitter.cpp (b7c0e4986a by generatedunixname1563563004708334)
- Xplat/js/react-native-github/packages/react-native/ReactCommon/yoga/yoga/algorithm/Baseline.cpp (ab4728472d by generatedunixname1563563004708334)
- Xplat/js/react-native-github/packages/react-native/ReactCommon/yoga/yoga/debug/Log.cpp (025a8629e9 by generatedunixname1563563004708334)
- Xplat/js/react-native-github/packages/rn-tester/js/examples/NativeAnimation/NativeAnimationsExample.js (b7c43e5a5a by generatedunixname1121389363894082)
- Xplat/js/RKJSModules/Marketplace/.claude/workflows/nostos/latency/nostos-xplat-latency-audit.js (d2c3ca74fa by generatedunixname1121389363894082)
Hermes V1 dSYMS:
ReactNativeDependencies dSYMs:
ReactNative Core dSYMs:
You can file issues or pick requests against this release here.
To help you upgrade to this version, you can use the Upgrade Helper ⚛️.
View the whole changelog in the CHANGELOG.md file.
4.3.0-beta04
- Added ability to search through media library in assistant if semantic search is enabled
- Added ability to enable opaque background in image viewer and improved image viewer layout by #3270
- Added ability to enable extended AMOLED theming by #3271
- Added Short and Long side anchors for flexible resize type by #3279
- Added ability to reorder favorite tools by #3285
- Added ability to retain zoom in image preview by #3282
- Added setting to remember last used image preview state
- Added ability to create full backup in settings by #3286
- Added favorites and recycle bin for media by #3278
- Fixed filename numbering and incorrect deleted count after batch processing by #3274
- Updated AVIF and JXL coders by #3273
- Improved eyedropper in draw tool by #3288
- Improved UI in scrolling lists with hideable elements by #3281
- Improved assistant flexibility and stability
- Fixed various possible issues
Full Changelog: https://github.com/T8RIN/ImageToolbox/compare/4.3.0-beta03...4.3.0-beta04
0.88.1
- JSI: Forward createValueFromJsonUtf8 in RuntimeDecorator (b5eec4e4f3 by @mrousavy)
- JSI: Run the With hooks around WithRuntimeDecorator::createArrayBuffer (82def6ea4c by @mrousavy)
- JSI: Forward String::length in RuntimeDecorator and WithRuntimeDecorator (be567d270c by @mrousavy)
- Yoga: Fix flex shrink explosion when the shrink total is a positive float residual (24a3be5f99 by @intergalacticspacehighway)
- SwiftPM: the build stops with a clear error when precompiled plugin frameworks and the Xcode project disagree, and the error says what to run. (a920e5db46 by @chrfalch)
- JSI: Use createError in JSError and forward it in RuntimeDecorator (0cca3a1f77 by @mrousavy)
- Build: Compile React Native's C/C++/Objective-C code with
-O2instead of-Osin Release, and Yoga and glog with-O2in all builds, to match Android (60c817e925 by @chrfalch) - SwiftPM:
spm addandspm updatewrite React Native's build settings toReactNativeSPM/ReactNativeSPM.xcconfigand its build scripts toReactNativeSPM/Scripts/, so a version bump no longer changesproject.pbxproj. A configuration that uses its own xcconfig must now#includethe generated file, and a target setting that hides React Native's value must add$(inherited).spmprints the exact fix in both cases. (cd89e98949 by @chrfalch) - Text: Text without a background color no longer draws a transparent background (0bd33261d1 by @hryhoriiK97)
- LogBox: Fix bottom notification appearance/touch targets on iPhone Duo (88a8bd23e8 by @huntie)
- Yoga: Keep the measured pixel size of text nodes when rounding to the pixel grid (fd5392494f by @intergalacticspacehighway)
- Text: Fix text measured with the wrong width when
fontVariationSettingsare re-applied to a reusedPaint(96518a8fb9 by @jkadamczyk) - Text: Skip empty and fully hidden text decoration ranges (dbd5b3b770 by @Abbondanzo)
- Text: Fix crash drawing text decoration (underline/strikethrough) when a nested Text's span extends past a numberOfLines-truncated layout (ca8504b1ca by @lazerg)
- Image: Image no longer shows the image of a previous source after its native view is recycled (53bf98bf40 by @mattijsf)
- SafeArea: Fix views with a filter having their content offset by the safe area insets (fea820fa9b by @intergalacticspacehighway)
- StatusBar:
StatusBarstyle and visibility work on iOS 27 for apps built with the iOS 27 SDK whenUIViewControllerBasedStatusBarAppearanceisYES. Custom root view controllers must return theRCTStatusBarAppearancevalues. (bd08dafc98 by @alanjhughes) - SwiftPM: a project set up with skipped codegen no longer fails package resolution on
ReactAppHeaders(e3aa9a1e19 by @chrfalch) - SwiftPM: the build-time sync now runs again when a watched path that did not exist at the last sync appears. (c89f4120ac by @chrfalch)
- SwiftPM: keep line breaks in the scheme pre-action script so that the "Sync SPM Autolinking" pre-action runs. Run
npx react-native spm updateonce to rewrite an existing scheme. (b8df948fd4 by @chrfalch)
Hermes V1 dSYMS:
ReactNativeDependencies dSYMs:
ReactNative Core dSYMs:
You can file issues or pick requests against this release here.
To help you upgrade to this version, you can use the Upgrade Helper ⚛️.
View the whole changelog in the CHANGELOG.md file.
4.3.0-beta03
- Added ability to enable manual analysis in duplicate finder by #3260
- Fixed saving images to their original folders when processing folders with subfolders
- Fixed jitters when animations disabled by #3263
- Updated jixel coder and added more effort values by #3267
- Reduced apk size after last increase
- Improved app performance in some scenarios
Full Changelog: https://github.com/T8RIN/ImageToolbox/compare/4.3.0-beta02...4.3.0-beta03
androidx-9.2.3
修复鉴权图片 URL 中签名变化导致缓存无法复用的问题,关联 #231。
- 新增
ImagePreview.setImageCacheKeyProvider,支持调用方提供稳定缓存键;不配置时保持按完整 URL 缓存。 - 统一图片预览、查看原图、保存图片和原始文件缓存查询的缓存键。网络请求与进度回调继续使用完整鉴权 URL。
- 文件下载改用
DiskCacheStrategy.DATA,修复downloadOnly()使用ALL引发 File 编码失败及重复 HTTP 请求的问题。 - 补齐现有 Media3 缓存管理器的 opt-in 注解,完整 lint 检查通过。
两个制品版本保持一致:
implementation "com.gouqinglin:BigImageViewPager:androidx-9.2.3"
// 可选视频插件
implementation "com.gouqinglin:BigImageViewPager-media3:androidx-9.2.3"
Kotlin 接入示例:
ImagePreview.instance
.with(activity)
.setImageUrlList(urls)
.setImageCacheKeyProvider { url -> cacheKeysByUrl[url] }
.start()
cacheKeysByUrl 为调用方准备的不可变映射,完整 URL 对应稳定资源键。缓存键应区分账号范围、内容版本和图片规格;返回 null 时保留该 URL 的默认规则。不要默认删除全部查询参数。
验证:Pixel 4 / Android 13 的 13 项仪器测试通过,覆盖真实图片双击缩放、滑动翻页、长图、横竖屏切换、签名轮换后重进、查看原图、保存图片、规格/版本/账号隔离、默认缓存规则和跳过缓存。核心库与 Media3 插件 Release AAR 构建、sample 构建、Gradle test、lint 和 git diff --check 通过。
详见 鉴权图片缓存接入说明。
4.3.0-beta02
- Added ability to automatically change seed after saving by #3250
- Added ability to automatically detect faces in draw tool for blur and pixelization brushes
- Added MobileSAM background removing model to perform guided segmentation
- Added ability to create people groups under semantic search
- Added setting to enable categorized settings UI
- Added AI assistant to ask questions about the app
- Added ability to show help & tips button on the main screen
- Added GFPGAN, DehazeFormer and DocShadow SD7K models to AI tools
- Improved LaMa inpainting quality in the Spot Heal tool
- Improved compare slider behavior by #3245
- Improved Help & Tips information
- Fixed image cropper to not lose original dimensions by #3246
- Fixed pinch gestures in markup layers by #3252
- Fixed gestures in image pagers while zoomed by #3253
- Fixed fast settings side when animations disabled by #3255
- Fixed Edit EXIF tool for large images by #3259
Full Changelog: https://github.com/T8RIN/ImageToolbox/compare/4.3.0-beta01...4.3.0-beta02