adaptive_dialog_manager 1.1.2 copy "adaptive_dialog_manager: ^1.1.2" to clipboard
adaptive_dialog_manager: ^1.1.2 copied to clipboard

A comprehensive Flutter adaptive dialog manager package that provides multi-platform dialog support with responsive design, accessibility features, and platform-specific behaviors.

Changelog #

All notable changes to the Adaptive Dialog Manager package will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.1.2 - 2025-07-05 #

πŸš€ Added #

Debug Mode Enhancement

  • Comprehensive Debug Mode Support

    • Added enableDebugMode() method to DialogManager interface for detailed dialog logging
    • Added disableDebugMode() method to DialogManager interface for turning off debug output
    • Added enableDebugMode() method to SnackbarManager interface for detailed snackbar logging
    • Added disableDebugMode() method to SnackbarManager interface for turning off debug output
    • Implemented debug mode methods in AdaptiveDialogManager with comprehensive logging
    • Implemented debug mode methods in AdaptiveSnackbarManager with comprehensive logging
  • Developer Experience Improvements

    • Consistent debug mode functionality across all three managers (Toast, Snackbar, Dialog)
    • Enhanced debugging capabilities with detailed operation logging
    • Standardized debug logging patterns following the same approach as AdaptiveToastManager
    • Real-time debug information for troubleshooting dialog and snackbar operations

πŸ”§ Technical Improvements #

Interface Consistency

  • Enhanced Manager Interfaces
    • Updated DialogManager interface with debug mode methods for complete API consistency
    • Updated SnackbarManager interface with debug mode methods matching other manager interfaces
    • Maintained full backward compatibility with existing implementations
    • Improved interface segregation with optional debug functionality

Implementation Enhancements

  • AdaptiveDialogManager Debug Support

    • Added enableDebugMode() implementation with debug state management
    • Added disableDebugMode() implementation with proper cleanup
    • Enhanced existing _logDebug() method integration for consistent logging
    • Improved developer experience with detailed dialog operation tracking
  • AdaptiveSnackbarManager Debug Support

    • Added enableDebugMode() implementation with debug state management
    • Added disableDebugMode() implementation with proper cleanup
    • Enhanced existing _logDebug() method integration for consistent logging
    • Improved developer experience with detailed snackbar operation tracking

πŸ“š Documentation #

  • Enhanced API Documentation
    • Complete documentation for new debug mode methods
    • Usage examples for enabling and disabling debug mode
    • Best practices for debug mode in development vs production

🎯 Backward Compatibility #

  • Fully Backward Compatible
    • All existing APIs maintain their current behavior
    • New debug methods are additive and do not affect existing functionality
    • No breaking changes to existing dialog, snackbar, or toast functionality
    • Existing code continues to work without modification

⚑ Performance #

  • Optimized Debug Implementation
    • Debug mode methods have minimal performance impact when disabled
    • Efficient logging system with conditional message generation
    • No impact on production performance when debug mode is disabled

πŸ§ͺ Developer Experience #

Consistent API Design

  • Unified Debug Interface
    • All three managers (AdaptiveDialogManager, AdaptiveSnackbarManager, AdaptiveToastManager) now have identical debug mode APIs
    • Consistent method naming and behavior across all manager implementations
    • Standardized debug logging format for easier development and troubleshooting

Usage Examples

// Enable debug mode for detailed logging
AdaptiveDialogManager.instance.enableDebugMode();
AdaptiveSnackbarManager.instance.enableDebugMode();
AdaptiveToastManager.instance.enableDebugMode(); // Already available

// Disable debug mode
AdaptiveDialogManager.instance.disableDebugMode();
AdaptiveSnackbarManager.instance.disableDebugMode();
AdaptiveToastManager.instance.disableDebugMode(); // Already available

🎯 Migration Guide #

This is a patch version update with full backward compatibility:

  • No Breaking Changes: All existing code continues to work without modification
  • New Features: Debug mode methods are optional additions to existing interfaces
  • Enhanced Development: New debug capabilities improve development experience
  • Optional Usage: Debug mode methods can be used optionally for enhanced logging

1.1.1 - 2025-02-07 #

πŸ”§ Fixed #

Critical Toast Dismissal Bug Fixes

  • Fixed Custom Content Toast Dismissal Issue

    • Resolved critical bug where custom content toasts (like processing toasts with cancel buttons) would not dismiss when interactive elements were tapped
    • Fixed toast ID mismatch between ToastQueueManager and AdaptiveToast widget that prevented proper communication
    • Added proper toast ID propagation from queue manager to individual toast widgets
  • Fixed dismissToastsByTag Method

    • Resolved broken dismissToastsByTag() implementation in AdaptiveToastManager that was dismissing ALL active toasts instead of only toasts with matching tags
    • Made private dismissal methods (_dismissToastsByType, _dismissToastsByTag) public in ToastQueueManager for proper access
    • Fixed tag-based filtering logic to correctly identify and dismiss only targeted toasts
  • Enhanced Toast State Communication

    • Added state stream listening in AdaptiveToast widget to properly receive dismissal signals from queue manager
    • Implemented automatic dismissal animation trigger when queue manager sets toast status to "hiding"
    • Fixed communication gap between queue manager's dismissal commands and individual widget responses

Context Consistency Improvements

  • Added Context Consistency Testing

    • Implemented context consistency tests for dialog and toast managers similar to existing snackbar tests
    • Added verification that dialogs and toasts position consistently regardless of which BuildContext is used (State vs Builder context)
    • Enhanced example applications with context consistency test sections
  • Fixed Context-Related Positioning Issues

    • Ensured consistent toast and dialog positioning across different widget contexts
    • Added debug logging for context-related operations for better troubleshooting

Development Experience Enhancements

  • Improved Debug Information

    • Enhanced debug logging with more detailed toast dismissal tracking
    • Added success/failure feedback for tag-based dismissal operations
    • Improved error messages and dismissal reason tracking
  • Enhanced Example Application

    • Added context consistency test UI for dialogs and toasts
    • Improved user feedback with detailed snackbar messages showing dismissal results
    • Enhanced debug output for better development experience

πŸ”§ Technical Improvements #

Toast Widget Architecture

  • Enhanced AdaptiveToast Widget
    • Added toastId parameter to constructor for proper ID synchronization
    • Implemented state stream subscription for listening to queue manager changes
    • Added proper resource cleanup for state subscriptions in dispose method
    • Maintained backward compatibility with optional toastId parameter

Queue Manager Improvements

  • ToastQueueManager API Enhancement

    • Made dismissToastsByType() and dismissToastsByTag() methods public for external access
    • Updated internal method calls to use new public method names
    • Maintained existing functionality while improving API accessibility
  • AdaptiveToastManager Fixes

    • Fixed broken delegation in dismissToastsByType() and dismissToastsByTag() methods
    • Replaced incorrect "dismiss all toasts" logic with proper queue manager delegation
    • Improved type safety and error handling in dismissal operations

πŸ§ͺ Testing & Quality #

Enhanced Test Coverage

  • Context Consistency Tests
    • Added comprehensive context consistency testing for dialogs and toasts
    • Implemented test cases for State context vs Builder context scenarios
    • Added timing behavior tests across different contexts

Improved Example Application

  • Enhanced Toast Showcase
    • Added context consistency test section with visual indicators
    • Improved custom content toast examples with working cancel buttons
    • Enhanced debug information display with real-time status updates

πŸ“š Documentation #

  • Updated Code Examples
    • Fixed custom content toast examples to show proper dismissal implementation
    • Added context consistency testing examples
    • Enhanced debugging and troubleshooting documentation

⚑ Performance #

  • Optimized State Management
    • Reduced unnecessary state updates through improved filtering logic
    • Enhanced memory management with proper subscription cleanup
    • Optimized tag-based dismissal operations for better performance

🎯 Backward Compatibility #

  • Fully Backward Compatible
    • All existing APIs maintain their current behavior
    • New toastId parameter is optional and defaults to auto-generation
    • No breaking changes to existing toast, dialog, or snackbar functionality
    • Existing code continues to work without modification

πŸ› Bug Resolution Summary #

This patch release resolves several critical issues that were affecting toast functionality:

  1. Custom Content Dismissal: Fixed the primary issue where toasts with interactive custom content (buttons, etc.) wouldn't dismiss properly
  2. Tag-Based Filtering: Restored proper tag-based dismissal functionality that was incorrectly dismissing all toasts
  3. State Synchronization: Resolved communication issues between queue manager and individual toast widgets
  4. Context Consistency: Ensured consistent behavior across different widget contexts

All fixes maintain full backward compatibility while significantly improving the reliability and user experience of the toast system.

1.1.0 - 2025-01-07 #

πŸš€ Added #

Advanced Toast Timing System

  • Toast Timing Behavior Control

    • New ToastTimingBehavior enum with independent and dependent options
    • Independent timing: Each toast dismisses based on its own timer (classic behavior)
    • Dependent timing: Older toasts pause when newer ones appear, resume when visible again
    • Smart timing management for better user experience with multiple toasts
  • Toast Display Mode Enhancement

    • New ToastDisplayMode enum with stack and column options
    • Enhanced ToastConfig with displayMode parameter for explicit control
    • Backward compatibility maintained with existing ToastLayout enum
    • Extension methods for easy conversion between layout and display modes
  • Toast Timing Manager

    • New ToastTimingManager class for sophisticated timing control
    • Position-aware timer management for dependent timing behavior
    • Automatic pause/resume functionality based on toast visibility
    • Real-time timer debugging and monitoring capabilities
    • Stream-based timer state management
  • Enhanced Toast Configuration

    • New timingBehavior parameter in ToastConfig with dependent timing as default
    • Updated factory constructors (info, success, warning, error) with timing behavior support
    • Enhanced copyWith method to include all new timing-related properties
    • Improved type safety with comprehensive null checking
  • Utility Enhancements

    • New IdGenerator class for generating unique toast and dialog IDs
    • Support for timestamp-based, short alphanumeric, prefixed, and UUID-like ID generation
    • Enhanced debugging capabilities with unique ID tracking

Enhanced Snackbar System

  • Advanced Dismissible Configuration

    • Enhanced dismissible property with smart auto-dismiss logic
    • New autoDismiss property for granular control over automatic dismissal
    • dismissDirection property for customizing swipe-to-dismiss behavior
    • shouldAutoDismiss getter for intelligent dismissal logic based on snackbar type
  • Animation System Improvements

    • New animationDuration property for custom animation timing
    • New animationCurve property for custom animation curves
    • Platform-specific animation defaults with customization support
    • Enhanced animation system with better performance and smoother transitions
  • Factory Constructor Enhancements

    • Updated SnackbarConfig.action() to support duration parameter
    • Updated SnackbarConfig.banner() to support duration parameter
    • Updated SnackbarConfig.custom() to support duration and dismissible parameters
    • Updated SnackbarConfig.loading() to support dismissible parameter

Developer Experience Improvements

  • Enhanced Debug Information

    • Real-time toast timing information in debug mode
    • Live timer status monitoring with pause/resume states
    • Position-specific timing information display
    • Enhanced debug information in example application
  • Improved Example Application

    • New timing behavior selection controls in toast showcase
    • Real-time debug information display with live updates
    • Enhanced toast testing capabilities with timing behavior demonstration
    • Interactive timing behavior controls with detailed descriptions

πŸ”§ Changed #

Toast System Improvements

  • Enhanced Toast Constants

    • Updated maxVisibleColumnToasts from 3 to 4 for improved user experience
    • Enhanced default toast widths for better visibility across platforms
    • Improved spacing constants for column layout mode
    • Optimized animation durations for smoother transitions
  • Toast Configuration Updates

    • Default timingBehavior set to dependent for better multi-toast experience
    • Enhanced effectiveDuration calculation with timing behavior consideration
    • Improved shouldAutoDismiss logic with timing behavior awareness
    • Better integration between layout modes and timing behaviors
  • Widget Lifecycle Management

    • Enhanced AdaptiveToast widget with timing manager integration
    • Automatic registration/unregistration with timing manager
    • Improved memory management and resource cleanup
    • Better animation controller handling with timing integration

Configuration Model Enhancements

  • ToastConfig Model Updates

    • New timingBehavior property with comprehensive factory constructor support
    • Enhanced displayMode property for explicit display control
    • Updated toMap() and fromMap() methods with new properties
    • Improved copyWith() method for complete configuration copying
    • Enhanced equality operator and hashCode with new properties
  • SnackbarConfig Model Updates

    • New dismissible-related properties with comprehensive support
    • Enhanced animation configuration properties
    • Updated factory constructors with duration and dismissible support
    • Improved configuration mapping and serialization

πŸ”§ Fixed #

  • Type Safety Improvements

    • Fixed missing property errors in configuration models
    • Enhanced null safety throughout toast and snackbar systems
    • Improved error handling for invalid configuration combinations
    • Better validation for timing and animation parameters
  • Configuration Consistency

    • Ensured all new properties are properly mapped in serialization methods
    • Fixed missing property handling in fromMap() factory constructors
    • Improved copyWith() method completeness across all models
    • Enhanced equality and hashCode implementations

πŸ“š Documentation #

  • Enhanced API Documentation

    • Comprehensive documentation for toast timing behavior system
    • Detailed explanations of dependent vs independent timing modes
    • Enhanced configuration examples with timing behavior usage
    • Improved code examples in README and documentation
  • Example Application Updates

    • Enhanced toast showcase page with timing behavior controls
    • Real-time debugging information display
    • Interactive examples demonstrating timing behavior differences
    • Improved user interface for testing new features

πŸ§ͺ Testing & Debugging #

  • Enhanced Debug Capabilities

    • Real-time timer status monitoring and display
    • Position-specific timing information tracking
    • Enhanced debug mode with timing manager integration
    • Improved error reporting and validation
  • Example Application Testing

    • Comprehensive timing behavior testing interface
    • Real-time debug information updates every 500ms
    • Interactive controls for testing different timing scenarios
    • Enhanced visual feedback for timing behavior demonstration

⚑ Performance #

  • Timing System Optimization

    • Efficient timer management with minimal memory overhead
    • Optimized position-based timer organization
    • Smart timer cleanup and resource management
    • Reduced timer creation/destruction cycles
  • Animation Performance

    • Optimized animation curves for different platforms
    • Improved animation duration defaults for better performance
    • Enhanced animation lifecycle management
    • Better memory usage in animation controllers

🎯 Migration Guide #

This is a minor version update with full backward compatibility:

  • No Breaking Changes: All existing code continues to work without modification
  • New Features: New timing behavior and configuration options are optional
  • Default Behavior: Dependent timing behavior is now default but can be changed to independent
  • Enhanced Configuration: New properties extend existing configuration without breaking changes

Optional Migration for Enhanced Features:

// Before (still works)
ToastConfig.info(
  platformType: PlatformType.android,
  message: 'Info message',
);

// After (enhanced with timing behavior)
ToastConfig.info(
  platformType: PlatformType.android,
  message: 'Info message',
  timingBehavior: ToastTimingBehavior.independent, // Optional
);

1.0.4 - 2025-07-01 #

  • Fix snackbar top position with safe area

1.0.3 - 2025-06-25 #

πŸ”§ Changed #

Snackbar Default Position Update

  • Default Position Changed from Bottom to Top

    • Updated SnackbarManager.showToast() default position from center to top
    • Updated SnackbarManager.showCustom() default position from bottom to top
    • Updated SnackbarConfig constructor default position from bottom to top
    • Updated SnackbarConfig.fromMap() fallback default from bottom to top
    • Updated SnackbarConfig.custom() factory method default from bottom to top
    • Updated AdaptiveSnackbarManager.showCustom() default parameter from bottom to top
  • Documentation Updates

    • Updated SnackbarPosition enum documentation to mark top as "(default)"
    • Removed "(default)" marker from bottom position in enum documentation

🎯 Impact #

  • Backward Compatibility Maintained

    • Existing code that explicitly sets position parameters will continue to work exactly as before
    • Only affects snackbars where position is not explicitly specified
    • No breaking changes to existing APIs or method signatures
  • Improved User Experience

    • Snackbars now appear at the top by default, providing better visibility
    • Consistent with modern mobile app design patterns
    • Users can still override with any SnackbarPosition value as needed

πŸ“š Migration #

No migration required. This change only affects the default behavior:

  • Before: showSnackbar(context, config) β†’ showed at bottom
  • After: showSnackbar(context, config) β†’ shows at top
  • Override: showSnackbar(context, config.copyWith(position: SnackbarPosition.bottom)) β†’ shows at bottom

1.0.2 - 2025-06-25 #

πŸš€ Added #

Enhanced Snackbar Configuration

  • New Dismissible Properties

    • Added dismissible property to SnackbarConfig for controlling user dismissal behavior
    • Added autoDismiss property to control automatic dismissal after duration
    • Added dismissDirection property to customize swipe-to-dismiss direction
    • Added shouldAutoDismiss getter method for intelligent auto-dismiss logic
  • Animation Configuration

    • Added animationDuration property to SnackbarConfig for custom animation timing
    • Added animationCurve property to SnackbarConfig for custom animation curves
    • Enhanced animation system with platform-specific defaults and customization
  • Factory Constructor Enhancements

    • Updated SnackbarConfig.action() to support duration parameter
    • Updated SnackbarConfig.banner() to support duration parameter
    • Updated SnackbarConfig.custom() to support duration and dismissible parameters
    • Updated SnackbarConfig.loading() to support dismissible parameter

πŸ”§ Fixed #

  • Linter Error Resolution

    • Fixed missing dismissible property error in AdaptiveSnackbarManager
    • Fixed missing autoDismiss property error in AdaptiveSnackbarManager
    • Fixed missing dismissDirection property error in AdaptiveSnackbarManager
    • Fixed missing animationDuration property error in AdaptiveSnackbarManager
    • Fixed missing animationCurve property error in AdaptiveSnackbarManager
  • Configuration Consistency

    • Ensured all snackbar configuration properties are properly mapped in toMap() method
    • Updated fromMap() factory constructor to handle new properties
    • Updated copyWith() method to include all new properties
    • Updated equality operator and hashCode to include new properties

πŸ”§ Changed #

  • Smart Auto-Dismiss Logic

    • shouldAutoDismiss getter now prevents auto-dismissal for persistent snackbars
    • Improved logic: returns true only if autoDismiss is true AND snackbar type is NOT persistent
    • Enhanced user experience with context-aware dismissal behavior
  • Type Safety Improvements

    • All new properties are properly typed with null safety
    • Enhanced compile-time type checking for configuration validation
    • Improved error handling for invalid configuration combinations

πŸ“š Documentation #

  • Enhanced Configuration Examples

    • Updated README with new dismissible configuration examples
    • Added animation customization examples
    • Improved factory constructor documentation
  • API Reference Updates

    • Complete documentation for all new properties
    • Usage examples for custom animation and dismissal behavior
    • Best practices for different snackbar types

πŸ§ͺ Testing #

  • Configuration Validation
    • Enhanced type safety for all new properties
    • Improved error handling for edge cases
    • Better validation for animation and dismissal parameters

1.0.1 - 2025-06-25 #

πŸš€ Added #

Toast System Enhancements

  • Column Layout Mode for Toasts

    • New ToastLayout.column option for vertical toast arrangement
    • Maximum 4 visible toasts in column mode for optimal UX
    • Clean, organized vertical display instead of overlapping toasts
    • Position-aware column placement (top, bottom, center, left, right)
    • Responsive column width based on screen size (mobile, tablet, desktop)
    • Proper spacing and margins for visual clarity
  • Enhanced Toast Configuration

    • Updated ToastConfig with layout parameter for choosing between stack and column modes
    • Backward compatibility maintained - existing code continues to work
    • ToastLayout enum with stack (default) and column options
    • Extension methods for easy layout conversion and validation
  • Improved Toast Widgets

    • New ToastColumnOverlay widget for column-based toast display
    • Optimized widget management with proper key-based identification
    • Efficient overlay updates with minimal rebuilds
    • Memory-efficient toast widget storage and cleanup
  • Developer Experience Improvements

    • Enhanced debug logging for column mode operations
    • Clear documentation and examples for column layout usage
    • Simple API - just set layout: ToastLayout.column in ToastConfig
    • Comprehensive example page demonstrating column mode features

Technical Improvements

  • Architecture Simplification

    • Streamlined column toast management with clean separation from stack mode
    • Simplified widget lifecycle management
    • Reduced complexity while maintaining full functionality
    • Type-safe widget handling with ValueKey<String> identification
  • Performance Optimizations

    • Efficient toast limiting with List.take() for maximum visible count
    • Minimal overlay rebuilds when toasts are added/removed
    • Proper resource cleanup and memory management
    • Optimized for smooth animations and transitions

πŸ”§ Changed #

  • ToastConstants.maxVisibleColumnToasts updated from 3 to 4 for better UX
  • Enhanced ToastColumnOverlay (renamed from SimpleColumnOverlay) for consistency
  • Improved toast positioning calculations for all screen sizes

πŸ“š Documentation #

  • Updated README.md with column layout examples and usage patterns
  • Added comprehensive column mode documentation
  • New code examples showing multiple toasts in column layout
  • Enhanced API documentation for ToastLayout enum and related classes

πŸ§ͺ Example Application #

  • New interactive column mode example page
  • Real-time toast counter and debug information
  • Multiple toast types demonstration in column layout
  • Position selection and testing capabilities

1.0.0 - 2025-06-25 #

πŸŽ‰ Initial Release #

Added

  • Multi-Platform Dialog System

    • Comprehensive adaptive dialog management for all Flutter platforms (Android, iOS, Web, Windows, macOS, Linux, Fuchsia)
    • Platform-specific dialog behaviors with Material, Cupertino, Fluent, and macOS design systems
    • 25+ dialog types: alert, confirmation, input, loading, progress, bottomSheet, custom, modal, fullScreen, datePicker, timePicker, colorPicker, filePicker, search, settings, about, help, error, warning, success, info, toast, snackbar
    • Responsive design with automatic layout adaptation for mobile, tablet, and desktop
    • Comprehensive dialog queue management system with intelligent queuing
    • Singleton pattern implementation (AdaptiveDialogManager) for efficient resource management
  • Advanced Snackbar System

    • Dedicated adaptive snackbar manager (AdaptiveSnackbarManager) with platform-specific behaviors
    • 10 snackbar types: info, success, warning, error, loading, action, custom, toast, banner, persistent
    • Advanced positioning: top, bottom, center with fine-grained offset control
    • Behavior types: fixed, floating, pinned behaviors for different interaction patterns
    • Action support with customizable callbacks and interactive buttons
    • Priority-based queue management for intelligent notification ordering
    • Custom content support with widget injection
  • Toast Notification System

    • Comprehensive toast manager (AdaptiveToastManager) with cross-platform support
    • 5 toast types: info, success, warning, error, custom
    • Flexible positioning: top, bottom, center positioning with offset control
    • Stack and queue layouts: traditional overlapping or queued display options
    • Timing management: automatic duration control with pause/resume capabilities
    • Custom content support with widget-based customization
  • Rich Animation System

    • 16 built-in animation types: none, fade, scale, slideFromBottom, slideFromTop, slideFromLeft, slideFromRight, slideUp, slideDown, elastic, bounce, rotation, flip, pop, blur, custom
    • Platform-optimized timing and curves for smooth user experience
    • Performance profiles: mobile-friendly and high-performance variants
    • Reduced motion support for accessibility compliance
    • Animation duration and curve customization
  • Comprehensive Configuration Models

    • Type-safe DialogConfig model extending BaseDataModel from flutter_shared_utilities
    • Advanced SnackbarConfig with comprehensive customization options
    • Feature-rich ToastConfig for flexible toast configuration
    • Generic DialogResult<T>, SnackbarResult<T>, and ToastResult<T> with type safety
    • PlatformSettings for platform-specific configurations
    • ResponsiveConfig for breakpoint-aware layouts
  • Advanced Enums

    • DialogType - 25+ dialog variants for comprehensive coverage
    • SnackbarType - 10 snackbar types with different behaviors and priorities
    • ToastType - 5 toast variants with customizable styling
    • PlatformType - Support for Android, iOS, web, windows, macOS, linux, fuchsia
    • AnimationType - 16 different animation options with performance considerations
    • SnackbarPosition - Comprehensive positioning with top, bottom, center, topLeft, topRight, bottomLeft, bottomRight, centerLeft, centerRight options
    • SnackbarBehavior - Fixed, floating, pinned, overlay, modal behaviors
    • ToastPosition - Flexible toast positioning options
    • ToastLayout - Stack and queue layout patterns
    • ResponsiveBreakpoint - Mobile, tablet, desktop, large breakpoints
  • Utility Classes

    • PlatformDetector for automatic platform detection with override capabilities
    • ResponsiveManager for breakpoint management and responsive layouts
    • SettingsController for managing dialog and notification preferences
    • Debug mode with comprehensive logging for development
    • Queue status monitoring and management across all notification types
  • Advanced Widget Components

    • AdaptiveSnackbar - Platform-specific snackbar implementation
    • AdaptiveToast - Cross-platform toast widget
    • SnackbarOverlay and ToastOverlay - Advanced overlay management
    • Utility widgets: ColorPicker, ColorGrid, FilePickerContent, GenericSearchDelegate
    • SettingsContent and HelpPage - Pre-built configuration pages
  • Queue Management System

    • DialogQueueManager - Intelligent queue management for dialogs
    • SnackbarQueueManager - Priority-based snackbar queue handling
    • ToastQueueManager - Stack and queue-based toast management
    • ToastTimingManager - Advanced timing control for toast notifications
    • Stream-based state management with real-time updates
  • Accessibility Features

    • Screen reader support with comprehensive semantic labeling
    • Keyboard navigation for desktop platforms (Tab, Enter, Escape, Arrow keys)
    • Focus management with proper focus trapping and restoration
    • High contrast support with theme-aware color schemes
    • Touch target sizing with minimum accessibility requirements (48dp)
    • Reduced motion detection and automatic adaptation
    • WCAG compliance features
  • Developer Experience

    • Abstract interfaces (DialogManager, SnackbarManager, ToastManager) for dependency injection
    • Comprehensive error handling with detailed error messages and stack traces
    • Debug mode with detailed logging for development and troubleshooting
    • Type-safe configuration with compile-time checks
    • Stream-based state management for reactive programming
    • Singleton pattern for efficient memory usage
    • Clean Architecture principles with separation of concerns
  • Dependencies

    • flutter_shared_utilities: ^1.0.6 for base models and safe type utilities
    • universal_io: ^2.2.2 for cross-platform I/O operations
    • Minimal dependency footprint for optimal package size
  • Example Application

    • Comprehensive example app demonstrating all features
    • 7 showcase pages: Home, Dialog Examples, Snackbar Showcase, Toast Showcase, Animation Showcase, Platform Showcase, Responsive Showcase
    • Interactive examples with real-time configuration
    • Platform-specific demonstrations for all supported platforms
    • Animation playground with all 16 animation types
    • Responsive design examples for different screen sizes
    • Theme switching and accessibility demonstrations
  • Documentation

    • Comprehensive README with 50+ code examples
    • API documentation with detailed parameter descriptions
    • Installation guide for all platforms
    • Architecture documentation with interfaces and patterns
    • Customization examples and best practices
    • Performance optimization recommendations
    • Accessibility guide with WCAG compliance information

Technical Details

  • Minimum Requirements

    • Flutter SDK: >=3.19.0
    • Dart SDK: ^3.8.1
    • All major platforms supported (Android, iOS, Web, Windows, macOS, Linux)
  • Architecture

    • Clean Architecture with modular design
    • Repository pattern implementation for data management
    • Singleton pattern for manager classes
    • Stream-based state management for reactive updates
    • Platform adapter pattern for cross-platform support
    • Interface segregation for testability
  • Performance

    • Lazy initialization of resources and managers
    • Efficient queue management algorithms with O(log n) operations
    • Memory leak prevention with proper disposal patterns
    • Optimized animations for different device capabilities
    • Platform-specific optimizations for each target platform
  • Type Safety

    • All models extend BaseDataModel with safe type conversion
    • Generic result types for compile-time type checking
    • Comprehensive null safety throughout the codebase
    • Safe parsing methods for all data transformations

Constants and Configuration

  • Animation Constants: Default durations, curves, and performance profiles
  • Breakpoint Constants: Responsive design breakpoints for mobile, tablet, desktop
  • Dialog Constants: Default styling, dimensions, and behavior settings
  • Snackbar Constants: Positioning, timing, and appearance defaults
  • Toast Constants: Duration, positioning, and animation defaults

πŸ“‹ Known Issues #

  • None reported in initial release

πŸ”„ Migration Guide #

  • This is the initial release, no migration needed

[Unreleased] #

Planned Features #

  • ❌ Voice control support for enhanced accessibility
  • ❌ Gesture customization for mobile interaction patterns
  • ❌ Advanced theming system with custom theme builders
  • ❌ Performance analytics and monitoring dashboard
  • ❌ Plugin architecture for extensibility and custom notifications
  • ❌ Multi-window support for desktop platforms
  • ❌ Internationalization (i18n) support with localization
  • ❌ More animation presets and custom animation builders
  • ❌ Enhanced debugging tools and visual debugger
  • ❌ Integration with popular state management solutions (Riverpod, Bloc)
  • ❌ Material You (Material 3) design system support
  • ❌ macOS native dialog support with NSAlert integration
  • ❌ Windows native dialog support with Win32 APIs
  • ❌ Advanced queue management with priority scheduling
  • ❌ Biometric authentication dialog support

Development Notes #

Version Numbering #

This project follows Semantic Versioning:

  • MAJOR version for incompatible API changes
  • MINOR version for backward-compatible functionality additions
  • PATCH version for backward-compatible bug fixes

Release Process #

  1. Update version in pubspec.yaml
  2. Update CHANGELOG.md with new version details
  3. Create and test example applications
  4. Run comprehensive test suite
  5. Update documentation and README
  6. Create GitHub release with tags
  7. Publish to pub.flutter-io.cn

Contributing #

For contribution guidelines, please see CONTRIBUTING.md.

Support #


Made with ❀️ in Turkey

0
likes
0
points
82
downloads

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter adaptive dialog manager package that provides multi-platform dialog support with responsive design, accessibility features, and platform-specific behaviors.

Repository (GitHub)
View/report issues

Topics

#adaptive-dialog #dialog-manager #dialog #snackbar #toast

License

unknown (license)

Dependencies

flutter, flutter_shared_utilities, universal_io

More

Packages that depend on adaptive_dialog_manager