adaptive_media_picker 0.0.10
adaptive_media_picker: ^0.0.10 copied to clipboard
Adaptive Flutter media picker for images & videos with smart permissions, limited access UI, and cross-platform support (Android, iOS, Web, Desktop).
0.0.10 — 2025-01-XX #
Permission handling migration and dependency updates.
- Breaking Changes
- Replaced
permission_handlerwithsmart_permissionpackage PermissionManager.ensureMediaPermissionnow requiresBuildContext?parameter
- Replaced
- Dependencies
- Updated
device_info_plusfrom^12.1.0to^12.2.0 - Updated
image_pickerfrom^1.2.0to^1.2.1 - Replaced
permission_handler: ^12.0.1withsmart_permission: ^0.0.3
- Updated
- Permission Manager
- Migrated to
smart_permissionAPI for better permission handling UX - Added context-aware permission requests with proper mounted checks
- Improved Android granular media permissions handling (API 33+)
- Enhanced iOS Photos permission flow with limited access detection
- Migrated to
- Documentation
- Added iOS Podfile configuration section with permission setup instructions
- Updated README with Podfile
post_installconfiguration for Camera, Microphone, and Photos permissions
0.0.9 — 2025-10-13 #
Dart formatting only (no functional changes).
- Formatting
- Ran
dart formatwith default settings acrosslib/,example/, andtest/ - Ensures pana/pub.dev formatter compliance
- Ran
0.0.8 — 2025-01-13 #
Web image cropper bug fixes and improvements.
- Web Image Cropper
- Fixed "Type 'Brightness' not found" error
- Added input validation and better error handling
- Enhanced debugging with detailed logging
0.0.7 — 2025-10-09 #
Theming support and example toggle.
- Options
- Added
PickOptions.themeBrightnessandPickOptions.primaryColorto control UI theme for the limited-access sheet and cropper
- Added
- Limited-access UI
- Bottom sheet now uses app theme by default; can be overridden via
PickOptions
- Bottom sheet now uses app theme by default; can be overridden via
- Cropping (Android/iOS/Web)
- Android:
AndroidUiSettingscolors now derive from theme (toolbar, controls, dim layer, grid/frame) - Web: forwards theme context; respects app theme for dialog/page
- Android:
- Example
- Added light/dark theme switch and wired theme overrides into picker calls
- Docs
- README updated with theming section and usage
0.0.6 — 2025-10-06 #
Non-breaking DX improvements: typed errors and richer result metadata.
- Results
PickResultSinglenow exposesmetadata: PickMetadatawith:cropApplied,originalSize, andfinalSize(when measurable)
- Added
error: PickError?to disambiguate empty results:canceled(user canceled),cropCanceled,io,unknown
- Options
PickOptions.logTag(optional) for easier internal tracing in debug logs
- Behavior
- Populates
originalSizeandfinalSizefor single-image picks (incl. cropped) - Sets
PickError.canceledwhen selection dialogs return null/empty - Sets
PickError.cropCanceledwhen crop UI is dismissed without saving
- Populates
- Analyzer
- Guarded context across async gaps where size decoding/crop occurs
0.0.5 — 2025-10-06 #
Cropping feature finalized with platform guards, stubs, and docs updates:
- Feature: Optional cropping for single image picks (
PickOptions.wantToCrop)- Supported on Android, iOS, Web
- No-op on Desktop (macOS, Windows, Linux) — returns original image
- Limited access: Cropping now works when selecting from the limited-access picker (single image)
- Android: Ensure
UCropActivityis declared in app manifest (documented) - Web: Uses
image_cropper(cropperjs) with dialog style and fixed size; requires including CSS/JS inindex.html - Internals:
- Introduced
PlatformImageCropperwith conditional imports for mobile/web and a desktop stub - Removed direct
ImageCropperusage from the picker; unified call sites - Fixed analyzer issues: context guards (mounted checks), removed custom aspect ratio type
- Introduced
0.0.4 — 2025-09-23 #
Analyzer and formatting cleanups; no API changes:
- Lints
- Resolved "Dangling library doc comment" by adjusting comments in
lib/adaptive_media_picker.dart - Ensured analyzer passes with no issues on the library entrypoint
- Resolved "Dangling library doc comment" by adjusting comments in
- Formatting
- Ran
dart formatacross the repository (lib and example) for pub.dev checks
- Ran
- Tests
- Verified package and example tests pass under FVM
- Public API
- No functional or breaking changes
0.0.3 — 2025-09-23 #
Docs and README polish; tests and formatting:
- Docs
- Added dartdoc across public API (picker, models, limited-access UI)
- Removed duplicated/ambiguous comments for clearer generated docs
- Public API
- Cleaned exports in
adaptive_media_picker.dart(no breaking changes)
- Cleaned exports in
- Tests & formatting
- Updated example test to use the public entrypoint
- Ran
dart formaton lib to satisfy pub.dev checks
- Internals
- Minor refactors and comments only; no runtime behavior changes
0.0.2 — 2025-09-19 #
Refactor, clearer API, and docs/readiness improvements:
- New concrete result types returned directly:
PickResultSingle { item, permissionResolution }PickResultMultiple { items, permissionResolution }
- New public methods:
pickImage(single image),pickVideo(single video),pickMultiImage(multi images)
PickOptionssimplified:- Removed
allowMultipleandmediaType maxImagesnow applies only to images and is enforced cross-platform
- Removed
- Limited access bottom sheet UX:
- Closes by default after Manage/Open Settings when no items are visible
- Codebase reorg:
src/core/(models),src/platform/(permission manager),src/ui/(limited picker)
- Web compatibility: removed
dart:iofrom library code - README overhauled (quick start, use cases, API overview)
- Tests updated; FVM test run green
0.0.1 — 2025-09-18 #
Initial release
- Adaptive media picker with unified API across platforms (Android, iOS, Web, Desktop).
- Permission handling via
permission_handler, including:- Android 13+ granular Photos/Videos permissions and limited access detection.
- iOS Photos limited/full access handling with settings prompt.
- Desktop: treated as granted; relies on system file dialogs.
- Limited access flow with built-in bottom-sheet picker powered by
photo_manager. - Image/video picking backed by
image_pickerwith desktop/web camera fallback to gallery. - Options for multi-select, max image count, and image quality/size hints.
- Re-exports
ImageSourcefor consumer convenience. - Example app demonstrating common flows and UI states.
- Test suite (package and example) and FVM compatibility.