3 days ago
ImageToolbox

4.3.0-beta05

What's Changed

  • 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

3 days ago
react-native

0.89.0-rc.0

Breaking

  • AccessibilityState::selected is now std::optional<bool> in C++ props, preserving an unset selected instead of coercing it to false (af4d8eb08a by Calvin Liu)
  • react-native/community-cli-plugin will no longer be auto-detected from react-native. It must now be specified in devDependencies. (b26baaeba0 by @huntie)
  • Assets: Remove react-native/assets-registry. Use AssetRegistry from react-native and react-native/asset-utils instead. (56c48ac0eb by @huntie)
  • CLI: Platform registration config for the Community CLI is removed from the react-native package. No breaking change with react-native-community/cli 21.x (required). (be9fbdd0d5 by @huntie)
  • Fix SectionList and VirtualizedSectionList scrollToLocation to account for section headers and sticky headers correctly. (0c35f57447 by @amroaltah)
  • Image: Fix explicit fadeDuration being ignored on newly created Images (98d6795e6d by @bartlomiejbloniarz)
  • Mark unstable_batchedUpdates as deprecated (f6fc189b8c by @retyui)
  • Remove deprecated react/renderer/graphics/Geometry.h and react/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-destructuring plugin (73711b301e by @retyui)

Android specific

  • New Architecture: Remove DefaultNewArchitectureEntryPoint.bridgelessEnabled and the deprecated three-argument load(turboModulesEnabled, fabricEnabled, bridgelessEnabled) overload; bridgeless is always enabled in the New Architecture (9b18b951ea by @christophpurrer)
  • Remove DefaultNewArchitectureEntryPoint.fabricEnabled, turboModulesEnabled, concurrentReactEnabled and isConfigurationValid (ca2e11af51 by @christophpurrer)
  • Remove deprecated rncore.h; include FBReactNativeSpec.h and call FBReactNativeSpec_ModuleProvider instead (d63648bac6 by @javache)
  • Text: Add lineBreak and wordBreak props to Text (CSS line-break / word-break) for strict/loose line breaking and phrase-based breaking on Android 13+ (f736393946 by @iray-tno)

iOS specific

  • +moduleName is now optional on RCTBridgeModule instead 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-cxxreact headers under cxxreact/ inside its framework when USE_FRAMEWORKS is enabled. Pods that include <cxxreact/...> without calling install_modules_dependencies must add React_cxxreact.framework/Headers to HEADER_SEARCH_PATHS. (0a92baec87 by @j-piasecki)
  • Remove the deprecated bridgelessEnabled property and the deprecated initWithBundleURLBlock:newArchEnabled:turboModuleEnabled:bridgelessEnabled: / initWithBundleURL:newArchEnabled:turboModuleEnabled:bridgelessEnabled: initializers from RCTRootViewFactoryConfiguration; bridgeless is always enabled (2a9eca81b8 by @christophpurrer)

Added

  • react-native/metro-babel-transformer passes Metro's own babel/runtime and its version to react-native/babel-preset, when Metro provides them (89db5ce049 by @robhogan)
  • Add <React/ComponentRegistry.h> umbrella header as the public entry point for react/renderer/componentregistry (2975534d8b by @j-piasecki)
  • Add an experimental_onSafeAreaInsetsChange view 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.h to public react/utils module. (a35313a184 by @j-piasecki)
  • Added an umbrella header for the react/renderer/core module (dcc872ae01 by @j-piasecki)
  • Added umbrella header for the react/renderer/components/image module (a9203b8fdd by @j-piasecki)
  • Added umbrella header for the react/renderer/imagemanager module (be53e3a9a1 by @j-piasecki)
  • Allow C++ shadow node traits to be evaluated at compile time (73e3aeca88 by @javache)
  • Babel: Allow react-native/babel-preset to read enableBabelRuntime and babelRuntimeModuleName from Babel caller data (168a0d7b53 by @cortinico)
  • Export the ViewabilityConfig and ViewabilityConfigCallbackPair types from the package root (932b34a51c by @rubennorte)
  • Expose structuredClone and DOMException as global Web APIs (245bbfaf0a by @rubennorte)
  • Polyfill Array.prototype.toSorted and Array.prototype.toReversed when the JavaScript runtime does not provide them (3ff956a2a2 by @javache)
  • Text: Add experimental longest-line width sizing for wrapped Text (03ed284a2c by @Abbondanzo)

Android specific

iOS specific

  • AccessibilityInfo.isShowBordersEnabled() and showBordersChanged (Show Borders, formerly Button Shapes) (62a1fc186d by @camilopires)
  • Add -[RCTHost jsCallInvoker] to access the React instance's CallInvoker (8f58866394 by @potomak)
  • Add RN_STRICT_API and RN_ALLOW_FRAMEWORKS opt-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_API and RN_ALLOW_FRAMEWORKS CocoaPods opt-ins to enforce React Native's C++ stable API in app and library native code (0f1c6ae87d by @coado)

Changed

  • RuntimeScheduler.h no longer transitively includes PerformanceEntryReporter.h or ShadowTreeRevisionConsistencyManager.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 ShadowView for a View node no longer uses a dynamic_cast to read its layout metrics (79a562960d by @hryhoriiK97)
  • Bump memoize-one package 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.0 versioned 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 enableMountingCoordinatorPullModelAndroid in public C++ feature flags and move BackgroundImagePropsConversions.h to "for frameworks" headers (fc4e7061e2 by @j-piasecki)
  • Metro: Bump Metro minimum to 0.87.2 (b5c65ce265 by @robhogan)
  • Move RecoverableError from 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::cloneTree and UIManager::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 VirtualizedList render and scroll path (avoid per-render Set allocation for stickyHeaderIndices, per-scroll-event Map iterator for the empty nested-list collection, and per-call orientation object 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_cast for every child to check its type (392b7645b3 by @hryhoriiK97)

Android specific

iOS specific

  • RCTAppSetupUtils.h no longer transitively imports HermesExecutorFactory.h (a385cecbea by @j-piasecki)
  • RCTAppSetupUtils.h no longer transitively imports JSIExecutor.h or JSExecutor.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 as bridge and moduleRegistry are now nullable. methodQueue is now nonnull, so Swift overrides must be declared as DispatchQueue rather than DispatchQueue!. (08f96fefe4 by generatedunixname1608173377072046)
  • Build a paragraph's NSAttributedString without copying each text fragment or re-attributing its runs (7fc58f2192 by @hryhoriiK97)
  • Include errno and its description in RCTJavaScriptLoader bundle open/stat errors (156a9a29a9 by generatedunixname1608173377072046)
  • Look up each TurboModule method's signature once instead of on every call (1d1fade902 by @hryhoriiK97)
  • Pass AttributedString by const reference in RCTTextLayoutManager and add a move constructor for AttributedStringBox. (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 add and spm update write React Native's build settings to ReactNativeSPM/ReactNativeSPM.xcconfig and its build scripts to ReactNativeSPM/Scripts/, so a version bump no longer changes project.pbxproj. A configuration that uses its own xcconfig must now #include the generated file, and a target setting that hides React Native's value must add $(inherited). spm prints the exact fix in both cases. (6a2c7c2734 by @chrfalch)

Deprecated

  • JavaTurboModule::invokeJavaMethod with a cachedMethodID argument; use the overload without it (f78bdd4aea by @hryhoriiK97)

Android specific

  • Deprecate the legacy View-based surface lifecycle methods in UIManager. (d4d0813969 by @javache)

iOS specific

  • Deprecate unused old-architecture RCTBridge APIs ahead of removal (fcb13c5171 by @christophpurrer)
  • Mark -[RCTSurfacePresenter addObserver:] as deprecated for the compiler. Use RCTMountingTransactionObserverCoordinator instead. (9979e142a7 by @tjzel)

Removed

Android specific

iOS specific

Fixed

  • adjustsFontSizeToFit text 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 as rgb(0 128 0 / 50%), are no longer rejected (3aee67bcb6 by @lazerg)
  • Pressability now invokes the current onHoverIn/onHoverOut rather than the ones captured when its event handlers were created (8a4cf38576 by @rozele)
  • Align the react-native/no-deep-imports auto-fix map with the package's public API (29900fca26 by @rubennorte)
  • An Animated interpolation of a string that contains an rgb(), hsl() or hwb() 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: experimentalImportSupport in a Metro config now takes effect when react-native/babel-preset is 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-preset failing to resolve react-native and to transform preset sources under pnpm and Yarn pnpm-mode installs (b71d466561 by @amroaltah)
  • Fix VirtualView initial mode when initialHidden is 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 FlexFirstPassUsesRunningTotals errata (set by default) (ca7acf62c5 by @Dagur)
  • Fix deadlock in RuntimeScheduler when 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: contents after being inserted (19a6722f91 by @kwy404)
  • Fix the differ creating a mounted view again, or deleting a moved view, when a child with a negative zIndex moves in a nested flatten/unflatten (361bc240e4 by @pawicao)
  • Fix the inspector proxy leaking a pages polling timer, and sending duplicate getPages requests, 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 Android Images (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/translateY string transforms and parse numbers without a leading zero (bd9348a32a by @camchis)
  • Metro: Scope Metro INTERNAL_CALLSITES_REGEX to the react-native package to avoid collapsing unrelated frames (03737541b1 by @vzaidman)
  • New Architecture: Fix minimumFontScale with adjustsFontSizeToFit in 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 thisArg in 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, editable or persistentScrollbar prop to its default (86695d8eb6 by @YevheniiKotyrlo)
  • Restore public parseUnprocessedTransformOriginString in react/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-imports from reporting react-native/package.json, which is a supported entry point (46d00410e8 by @ahmdshrif)
  • Text: Avoid state updates and re-layout of unchanged Text siblings 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 ImageStyle type rejecting valid ViewStyle props such as filter, boxShadow and mixBlendMode (278e7f93c8 by @ramya-2196)
  • Validate invalid PerformanceObserver observe option combinations before native registration (e0224fd40b by @ya-nsh)
  • VirtualizedList: Avoid delaying urgent VirtualizedList rendering 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 message events after close() has been called (a6c0c470ad by @lazerg)

Android specific

  • A NaN or infinite elevation, or deprecated scaleX or scaleY, no longer crashes the app on Android 9 and later (d8789c6212 by @YevheniiKotyrlo)
  • A View with aria-live or accessibilityLiveRegion is 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 SafeAreaInsets type (11f37bd6e7 by @janicduplessis)
  • Fix getCurrentActivity() staying null after the Activity is destroyed during a reload (ea5882bfb8 by @lazerg)
  • Fix getOutlineWidth returning the outline offset (54b5f22c33 by @Abbondanzo)
  • Fix PlatformColor theme attributes that resolve to a ColorStateList, such as ?attr/textColorPrimary (4d536fa8cd by @lazerg)
  • Fix shadowColor, outlineOffset and outlineWidth not resetting to their defaults on components with a codegen view manager delegate (dfed2d925d by @shubh73)
  • Fix Switch losing its outline, boxShadow and thumbColor ripple color when backgroundColor is 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 UiThreadUtil when 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 enableMountingCoordinatorPullModelAndroid is 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 VirtualView children 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.yaml changes (cd2de187e8 by @JoelTowell)
  • Make the view manager prop setter caches thread-safe (3b4abb3c7a by @brownrice777)
  • MapBuffer: Make the React/View.h, React/Debug.h and React/MapBuffer.h umbrella 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 accessibilityRole values 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 accessibilityValue no longer leaves its text in the content description or drops the accessibilityLabel (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 accessibilityCollection is set and a child (e.g. a list header or footer) has no accessibilityCollectionItem (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-live on Text now sets accessibilityLiveRegion (9de6471df2 by @faciledictu)
  • Text: Fix ellipsizeMode="clip" being ignored on newly created Text (8cd9b763e3 by @bartlomiejbloniarz)
  • Text: Fix fontVariant being ignored on Text that doesn't also set fontFamily, fontWeight or fontStyle (ababa4de06 by Bora Shim)
  • Text: Fix multi-paragraph RTL Text with blank or LTR lines being drawn off-screen on Android 15+ (7b6516eb11 by @fkgozali)
  • Text: Fix single-line LTR Text being 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 TextInput outline 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)

iOS specific

  • role="slider" now gets the adjustable accessibility trait, like accessibilityRole="adjustable" (05f99a7d25 by @jeltehomminga)
  • spm_dependency embeds the dynamic frameworks of Swift packages in the app, and takes embed_frameworks for frameworks named differently from their product (d7878263ca by @mfazekas)
  • Allow Metro reload after an initial bundle-load failure. (df86c5e2a4 by @janicduplessis)
  • Apply borderCurve changes 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_dependency pods whose module name differs from the pod name (87c3e8f5dc by @mfazekas)
  • Fix 'folly/coro/Coroutine.h' file not found in libraries that set their own folly compiler flags (52efed6437 by @cipolleschi)
  • Fix TextInput dataDetectorTypes="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 RCTInstance invalidation 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 cancelled parameter type of RCTInspectorNetworkReporter's reportRequestFailed: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's onLoadStart before onLoad/onLoadEnd when the image request has already completed (5d84f62df1 by @SatyamBansal)
  • Keep a RCT_jsLocation passed as a launch argument when the packager answers /status late, 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/ios headers at react/utils/… in non-frameworks builds instead of a duplicated react/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 \0 character, and are no longer replaced with an empty string when they contain a lone surrogate (4fac9c8f35 by @hryhoriiK97)
  • SwiftPM: scaffolded Package.swift writes resources: before publicHeadersPath:, so libraries with podspec resources and public headers resolve (d576b40bff by @chrfalch)
  • Switch: Fix crash in Switch when onChange fires after the view has been recycled (7612536be3 by anvarbek)
  • Switch: Report a disabled Switch as disabled to VoiceOver and XCUITest (7bba6225af by @arun279)
  • Text: Fix Text containing only "I" being measured zero wide after an empty Text with the same style was measured (4b0a6ebc67 by @parthematics)
  • Text: Fix words jumping between lines while LayoutAnimation resizes a Text (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 TextInput placeholder drawn below centre after its view is reused from a TextInput with lineHeight (8f5a1c0a8f by @jkasprzyk17)
  • TextInput: Fix caret and text of a single-line TextInput drawn above center while focused, after its view was reused from a TextInput with 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 TextInput edits without synchronously rewriting text inside UIKit delegate callbacks (6f67e185ad by @javache)
  • TextInput: Preserve transformed TextInput edits without synchronously rewriting text inside UIKit delegate callbacks (ac766e6217 by @javache)
  • View: aria-modal on View now sets accessibilityViewIsModal (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)

Unknown

  • 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== ignoring boxSizing (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 days ago
ImageToolbox

4.3.0-beta04

What's Changed

  • 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

11 days ago
react-native

0.88.1

Added

iOS specific

  • 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)

Changed

iOS specific

  • Build: Compile React Native's C/C++/Objective-C code with -O2 instead of -Os in Release, and Yoga and glog with -O2 in all builds, to match Android (60c817e925 by @chrfalch)
  • SwiftPM: spm add and spm update write React Native's build settings to ReactNativeSPM/ReactNativeSPM.xcconfig and its build scripts to ReactNativeSPM/Scripts/, so a version bump no longer changes project.pbxproj. A configuration that uses its own xcconfig must now #include the generated file, and a target setting that hides React Native's value must add $(inherited). spm prints the exact fix in both cases. (cd89e98949 by @chrfalch)
  • Text: Text without a background color no longer draws a transparent background (0bd33261d1 by @hryhoriiK97)

Fixed

Android specific

  • Text: Fix text measured with the wrong width when fontVariationSettings are re-applied to a reused Paint (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)

iOS specific

  • 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: StatusBar style and visibility work on iOS 27 for apps built with the iOS 27 SDK when UIViewControllerBasedStatusBarAppearance is YES. Custom root view controllers must return the RCTStatusBarAppearance values. (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 update once 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.

12 days ago
ImageToolbox

4.3.0-beta03

What's Changed

  • 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

12 days ago
BigImageViewPager

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 通过。

详见 鉴权图片缓存接入说明。

16 days ago
ImageToolbox

4.3.0-beta02

What's Changed

  • 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

16 days ago
BaseRecyclerViewAdapterHelper

4.4.2

🎯 重点修复

修复 Maven 消费者无法编译的问题

recyclerview / annotation 依赖此前以 implementation 方式发布,POM 中为 runtime scope。如果使用方项目没有自行引入 recyclerview,编译时会报 Cannot access RecyclerView.ViewHolder。现已改为 api,无需任何手动处理。

🐛 Bug 修复

  • 修复 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")

升级无破坏性变更,直接替换版本号即可。


🎯 Highlight

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.

🐛 Bug Fixes

  • 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 LoadStateAdapter update order loadState is now updated before notifying, following the Adapter convention, so observers reading getItemCount() synchronously during a notify no longer see a stale state.

  • Fixed Kotlin K2 compilation error Removed inline from the isEmptyViewHolder extension (public inline declarations accessing internal types are compile errors under Kotlin K2). No API change.

⚠️ Behavior 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).

📦 Dependency

implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.4.2")

Upgrading is non-breaking — just bump the version.

18 days ago
DialogX

0.0.51.beta5 版本更新

  • 修复DialogFragment模式下存在的多弹窗触摸互转无限递归导致 StackOverflowError问题,感谢 @LiJoeAllen;
  • 修复DialogFragment存在的内存泄露风险;
  • 通过调整输入框的可见性来修复 MessageDialog 中的键盘异常展示问题;
20 days ago
ImageToolbox

4.3.0-beta01

What's Changed

  • 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