flutter_message_composer 0.5.2
flutter_message_composer: ^0.5.2 copied to clipboard
An adaptive Flutter message composer with multiline text, attachments, audio previews, and hold-to-record gestures with slide-to-cancel and locking.
0.5.2 #
- Toggle the emoji action between emoji and keyboard icons with matching tooltips while preserving its size, spacing, draft and selection.
- Observe native iOS session input-mode changes, including Emoji search and ABC. Document the limits of detecting switches outside the native session.
- Track AndroidX picker visibility and reset the action when native input closes.
- Expose
isEmojiKeyboardOpenandtoggleEmojiKeyboard()through the action controller. - Add
textKeyboardButtonIcon,isEmojiPickerOpenandonTextKeyboardPressedfor custom action icons and host-owned pickers. - Notify the previous input owner when another composer replaces its native session.
0.5.1 #
- Restore native Emoji search on iOS with a complete UIKit text-input client.
- Keep the native session open when Emoji search switches to a letter keyboard.
- Forward UIKit text-input commits to the Flutter draft without keeping a second editable copy of the message.
- Clarify the platform-specific search capabilities of the native emoji action.
0.5.0 #
- Show the emoji action by default; visibility and enabled state remain configurable.
- Open the native iOS Emoji keyboard without requiring an app-owned picker.
- Include Google's native AndroidX Emoji Picker on Android; no custom app selector or keyboard-vendor integration is required.
- Retain the macOS system character palette and optional
onEmojiPressedoverride. - Preserve the draft, cursor and selected text, and delete whole emoji sequences.
- Scope native input to its composer and release it when the field, route or recording workflow changes; ignore callbacks from closed sessions.
- Support Swift Package Manager and CocoaPods on iOS. The Emoji keyboard must be enabled in iOS settings. Existing audio dependency platform requirements remain unchanged.
0.4.0 #
- Add
MessageComposerControllerto trigger recording, audio preview, sending, attachment menus, focus, and emoji actions from external controls. - Expose observable action availability and recording state through
MessageComposerValue; retain permission and busy-state checks for all commands. - Add an optional emoji action before the microphone with independent visibility, enabled state, icon, tooltip, picker callback, and error callback.
- Open the native macOS emoji/character palette without replacing the text field.
Other platforms can connect a host-owned picker through
onEmojiPressed. - Support Swift Package Manager and CocoaPods for the native macOS action.
- Preserve action sizes and spacing on narrow composers by moving controls below the text when the compact row has insufficient space.
- Allow external cancellation while microphone startup is pending.
- Update recorder, icon, and permission dependencies and raise the Dart requirement to 3.13.4 and the Flutter requirement to 3.44.0.
0.3.2 #
- Preserve text focus and the keyboard when sending from controls or the IME.
- Keep the next draft editable while
sendingblocks duplicate submissions, attachment actions and recording; explicitenabled: falsestill disables input.
0.3.1 #
- Reduce the default attachment-menu padding and make it configurable through
MessageComposer.menuPadding.
0.3.0 #
- Replace
recordwithflutter_recorderfor the default audio recorder. - Record 16-bit mono WAV by default for reliable local playback on iOS and Android.
- Align the default recorder sample rate with
flutter_recorderand use the generic iOS input preset for voice-note capture. - Force the preview player back into a playback audio session after recording.
- Add opt-in silence-aware recording with automatic pause/resume while silence is detected.
- Discard invalid WAV files before preview or submission.
- Add
MessageComposerAudioRecorderConfigfor capture format, sample rate, channels, file format, platform input presets, and silence thresholds. - Add
onBeforeStartRecordingand typed recording lifecycle events so host apps can delay capture startup and react to cancellation or failure states. - Release the native recorder when capture stops or is canceled so consecutive voice notes start from a fresh capture session.
0.2.2 #
- Confirm the start of held recording with light-impact feedback after the microphone is ready, without premature feedback on permission or startup failures or recordings already queued to send or cancel.
- Enable haptics during recording in the default iOS audio session so the slide-to-lock gesture can provide light-impact feedback without stopping capture.
- Preserve explicit recorder configurations and document the iOS setting's effect on system sounds.
0.2.1 #
- Use light-impact haptic feedback when slide-to-cancel or slide-to-lock reaches its gesture threshold.
- Refine package documentation for installation, customization, resource ownership, and localization.
0.2.0 #
- Replace the disabled recording-stop button with play/pause preview controls.
- Add local audio playback, pause/resume, repeat playback, and waveform progress.
- Display tabular recording time, playback position, and total duration as
MM:SSbefore the waveform. - Add slide-to-cancel and upward slide-to-lock recording gestures, including RTL support, configurable distances, haptics, and a lock indicator.
- Preserve the release/cancel/lock intent during microphone startup and avoid sending a recording when another pointer is released.
- Add an injectable, lazily created preview player and localizable control labels, preview icons, timer styling, and playback error callbacks.
- Stop previews before sending or discarding audio and clean up unsent files.
- Expand audio workflow documentation and examples without changing existing recorder, submission, or text-controller contracts.
0.1.1 #
- Refresh the public installation documentation for pub.dev.
0.1.0 #
- Add adaptive multiline message composition.
- Add configurable attachment and prompt actions.
- Add tap-to-record and hold-to-record audio workflows.
- Add typed text, attachment, and audio submission payloads.
- Add theming, localization, and accessibility customization hooks.
- Add a customizable suggestion area above the composer field.
- Accept specialized text controllers without depending on token detection.
- Add an injectable recorder contract for alternate capture backends.
- Keep multiline transitions stable for trailing spaces and scaled text.