chat_media_picker

Chat attachment picker for Flutter (GetX): a draggable sheet with gallery, camera and file options, plus a photo editor (crop, rotate, draw, text, captions).

Attach panel Gallery Editor Dark theme

Install

flutter pub add chat_media_picker get

Android, and iOS 14.0+. The app must use GetMaterialApp.

Usage

final media = await ChatMediaPicker.openGallery(); // attachment sheet
final shots = await ChatMediaPicker.openCamera();  // camera screen

for (final m in media ?? <PickedMedia>[]) {
  m.file; m.caption; m.isVideo; m.isFile; m.fileName;
}

Both return null when the user closes the picker.

Options

ChatMediaPicker.config = const ChatMediaPickerConfig(
  maxSelection: 10,
  enableGallery: true,
  enableCamera: true,
  enableFilePicker: true,
  allowedFileExtensions: null, // e.g. ['pdf']
  showCloseButton: true,
  theme: ChatMediaPickerTheme(), // or ChatMediaPickerTheme.dark()
);

Use ChatMediaPickerTheme().copyWith(...) to change individual colours.

Platform setup

Android (AndroidManifest.xml):

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
<uses-feature android:name="android.hardware.camera" android:required="false" />

iOS (platform :ios, '14.0' in the Podfile, and Info.plist):

<key>NSCameraUsageDescription</key>
<string>Take photos to share in the chat.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Required by the camera plugin.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Pick photos and videos to share.</string>
<key>PHPhotoLibraryPreventAutomaticLimitedAccessAlert</key>
<true/>

Libraries

chat_media_picker
Chat attachment picker: gallery bottom sheet (photos + videos), custom camera, file picker, and an editor with crop, rotate, draw, text and captions.