floaty_chatheads_ios 1.1.5
floaty_chatheads_ios: ^1.1.5 copied to clipboard
iOS implementation of floaty_chatheads with UIWindow-based PiP overlay, snap-to-edge physics, theming, and VoiceOver accessibility.
Changelog #
1.1.5 #
⚡ Performance #
- Migrated to Swift Concurrency (
@MainActor). Replaced@unchecked Sendableconformance and manualDispatchQueue.main.asyncdispatching with@MainActorisolation on the plugin class. All Pigeon API methods now have compile-time main-thread safety enforcement instead of runtime GCD checks. - Marked
register(with:)asnonisolatedwithMainActor.assumeIsolatedfor Flutter registrar compatibility.
🐛 Bug Fixes #
- Fixed chathead freeze during drag. The
@MainActorannotation causedUIPanGestureRecognizercallbacks to route through the MainActor executor instead of executing synchronously. The pan handler is nownonisolatedwithMainActor.assumeIsolatedto guarantee zero-overhead synchronous dispatch. - Fixed message handler closures.
setMessageHandlerclosures for both main and overlay messengers now useMainActor.assumeIsolatedto prevent async actor hops during message forwarding.
1.1.4 #
✨ Enhancements #
- Native close notification to main app. When the overlay is
destroyed (drag-to-close or programmatic close), the iOS layer now
sends a system envelope message to the main Dart isolate so
FloatyChatheads.onClosedfires reliably.
1.1.3 #
📦 Metadata #
- Shortened pubspec description to meet pub.dev 60–180 character guideline.
- Added
example/example.mdfor the pub.dev example tab.
1.1.2 #
✨ Enhancements #
- Upgraded Pigeon to 26.2.3. Regenerated all Dart and Swift Pigeon bindings. No API surface changes — the upgrade picks up codec and code-generation improvements from the latest Pigeon release.
1.1.1 #
🐛 Bug Fixes #
- Fixed content panel size leaking between chathead sessions. The
contentSizeis now reset to defaults (300x400) before applying the new config so previous session dimensions don't persist.
1.1.0 #
🚀 iOS Feature Parity #
- Entrance animations:
none,pop,slideFromEdge,fadewith spring physics. - Snap-to-edge:
both,left,right,nonewith configurable margin. - Position persistence: saves and restores chathead position via
UserDefaults. - Badge counter: red pill badge with count, themed colors, caps at "99+".
- Theming: bubble border color/width, shadow color, badge colors, overlay palette delivery.
- Expand / Collapse: programmatic expand/collapse with animated transitions.
- Drag lifecycle events:
onChatHeadDragStartandonChatHeadDragEndcallbacks. - VoiceOver accessibility:
accessibilityLabel,accessibilityValuefor badge, screen change notifications on expand/collapse. - Debug info:
getDebugInfo()returns overlay state, window frame, snap config. - Updated Pigeon schema to match Android with all new enums, models, and API methods.
- Full size preset support via Dart-side resolution.
1.0.1 #
- Documentation and metadata updates.
1.0.0 #
🎉 Initial Release #
- iOS implementation of
floaty_chatheadsusingUIWindowPiP overlay. - Window level set to
.alert + 1— no special permissions required. - Pigeon-generated type-safe Dart ↔ Swift communication.
UIPanGestureRecognizerfor bubble drag.- Supports iOS 13+ with Swift 6.1.
- Permission stubs (always returns
true). - Content panel resize, overlay flag updates, and position queries.
- Multi-bubble add / remove by ID.