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
4.4.2
修复 Maven 消费者无法编译的问题
recyclerview / annotation 依赖此前以 implementation 方式发布,POM 中为 runtime scope。如果使用方项目没有自行引入 recyclerview,编译时会报 Cannot access RecyclerView.ViewHolder。现已改为 api,无需任何手动处理。
-
修复
clearBeforeAdapters()/clearAfterAdapters()后预加载失效的问题 清空 Before/After Adapter 后,加载更多的预加载监听器没有恢复到 contentAdapter,导致预加载从此不再触发。 -
修复
LoadStateAdapter状态更新顺序 先更新loadState再 notify,符合 Adapter 数据更新约定,notify 期间同步读取getItemCount()的观察者不再看到旧状态。 -
修复 Kotlin K2 下的编译错误
isEmptyViewHolder扩展属性去掉inline(public inline 声明访问 internal 类型在 K2 下为编译错误)。无 API 变化。
BaseSingleItemAdapter 不再支持 stateView / emptyView
此前它的 items 恒为空列表,一旦开启 stateView,真实 item 会被空状态布局永久顶替且无任何报错。现在 stateView 设置将被忽略,真实 item 始终显示。如需占位效果,请在 onBindViewHolder 中自行处理 item == null 的情况。
另外,swap() / move() 现在与其它数据变更方法一致,调用将抛出异常(本来也不该对单 item 使用)。
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.4.2")
升级无破坏性变更,直接替换版本号即可。
Fix Maven consumers failing to compile
Previously recyclerview / annotation were published with implementation, which maps to runtime scope in the POM. Consumers whose projects did not declare recyclerview themselves failed to compile with Cannot access RecyclerView.ViewHolder. They are now exposed as api — no manual workaround needed.
-
Fixed preload silently stopping after
clearBeforeAdapters()/clearAfterAdapters()The load-more preload listeners were not restored to the contentAdapter after clearing the Before/After adapters, so preload never triggered again. -
Fixed
LoadStateAdapterupdate orderloadStateis now updated before notifying, following the Adapter convention, so observers readinggetItemCount()synchronously during a notify no longer see a stale state. -
Fixed Kotlin K2 compilation error Removed
inlinefrom theisEmptyViewHolderextension (public inline declarations accessing internal types are compile errors under Kotlin K2). No API change.
BaseSingleItemAdapter no longer supports stateView / emptyView
Previously, enabling stateView on a BaseSingleItemAdapter permanently replaced the real item with the state layout, silently — because its items is always an empty list. The state view is now ignored and the real item always shows. To show a placeholder, handle item == null yourself in onBindViewHolder.
Also, swap() / move() now throw like the other mutation methods (they never made sense for a single-item adapter).
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.4.2")
Upgrading is non-breaking — just bump the version.
0.0.51.beta5 版本更新
- 修复DialogFragment模式下存在的多弹窗触摸互转无限递归导致 StackOverflowError问题,感谢 @LiJoeAllen;
- 修复DialogFragment存在的内存泄露风险;
- 通过调整输入框的可见性来修复 MessageDialog 中的键盘异常展示问题;
4.3.0-beta01
- Added setting to control dialog windows position
- Added option to enable layers snapping in Markup Layers tool by #3224
- Added ability to reorder background image in Markup Layers by #3240
- Added option to apply spot heal masks manually by #3231
- Added ability to export/import gradient palettes by #3232
- Added ability to enable semantic images search by #1900
- Fixed PDF crop presets by #3225
- Fixed Samsung DNG handling by #3229
- Fixed delay in toggle tap compare mode by #3242
- Improved UI for large screens
Full Changelog: https://github.com/T8RIN/ImageToolbox/compare/4.2.1-rc01...4.3.0-beta01