MediaSettingsModalOptions class

Configuration for the media-device picker modal enabling camera/mic selection.

  • switchCameraOnPress - Override for switchVideoAlt; receives {videoPreference, parameters}. Called when user taps "Switch Camera" (mobile).
  • switchVideoOnPress - Override for switchVideo; receives {videoPreference, checkoff, parameters}. Called when dropdown selection changes for video device.
  • switchAudioOnPress - Override for switchAudio; receives {audioPreference, parameters}. Called when dropdown selection changes for audio device.
  • parameters - Must expose userDefaultVideoInputDevice, userDefaultAudioInputDevice, videoInputs, audioInputs, isMediaSettingsModalVisible, updateIsMediaSettingsModalVisible, and getUpdatedAllParams.
  • position - Modal placement via getModalPosition (e.g., 'topRight').
  • backgroundColor - Background color for modal container.
  • customBuilder - Replace entire modal widget tree; receives MediaSettingsModalOptions.
  • wrapperBuilder - Override top-level Stack; receives {stackChildren, defaultWrapper}.
  • containerBuilder - Override modal container (positioned box); receives {child, defaultContainer}.
  • headerBuilder - Override header bar; receives {title, closeButton, defaultHeader}.
  • sectionBuilder - Override each device-picker section; receives {label, type, dropdown, defaultSection}.
  • dropdownBuilder - Override DropdownButton widget; receives {type, selectedValue, items, onChanged, defaultDropdown}.
  • buttonBuilder - Override "Switch Camera" button; receives {onPressed, child, defaultButton}.
  • containerPadding / containerMargin / containerAlignment / containerDecoration - Fine-tune modal container styling.
  • titleTextStyle / labelTextStyle - Typography overrides for title and section labels.
  • switchButtonStyle / switchButtonChild - Customize "Switch Camera" button appearance.

Compatible with ModernMediaSettingsModalOptions from the modern component.

Usage

  1. Modal populates dropdowns from parameters.videoInputs and parameters.audioInputs (list of MediaDeviceInfo).
  2. Current selection defaults to userDefaultVideoInputDevice and userDefaultAudioInputDevice.
  3. Changing dropdown invokes switchVideoOnPress or switchAudioOnPress, which update state and switch tracks.
  4. "Switch Camera" button (mobile-only) cycles through front/back cameras via switchCameraOnPress.
  5. Override via MediasfuUICustomOverrides.mediaSettingsModal to inject permission checks, device aliases, or preview surfaces.

Constructors

MediaSettingsModalOptions.new({required bool isVisible, required VoidCallback onClose, SwitchVideoAltType switchCameraOnPress = switchVideoAlt, SwitchVideoType switchVideoOnPress = switchVideo, SwitchAudioType switchAudioOnPress = switchAudio, required MediaSettingsModalParameters parameters, String position = 'topRight', Color backgroundColor = Colors.blue, MediaSettingsModalType? customBuilder, EdgeInsetsGeometry? containerPadding, EdgeInsetsGeometry? containerMargin, AlignmentGeometry? containerAlignment, BoxDecoration? containerDecoration, MediaSettingsModalWrapperBuilder? wrapperBuilder, MediaSettingsModalContainerBuilder? containerBuilder, MediaSettingsModalHeaderBuilder? headerBuilder, MediaSettingsModalSectionBuilder? sectionBuilder, MediaSettingsModalDropdownBuilder? dropdownBuilder, MediaSettingsModalButtonBuilder? buttonBuilder, TextStyle? titleTextStyle, TextStyle? labelTextStyle, ButtonStyle? switchButtonStyle, Widget? switchButtonChild, bool isDarkMode = false, bool enableGlassmorphism = false, ModalRenderMode renderMode = ModalRenderMode.modal})

Properties

backgroundColor → Color
final
buttonBuilder → MediaSettingsModalButtonBuilder?
final
containerAlignment → AlignmentGeometry?
final
containerBuilder → MediaSettingsModalContainerBuilder?
final
containerDecoration → BoxDecoration?
final
containerMargin → EdgeInsetsGeometry?
final
containerPadding → EdgeInsetsGeometry?
final
customBuilder → MediaSettingsModalType?
final
final
enableGlassmorphism → bool
Enable glassmorphism effects for modern styling. Note: Pending modern implementation - placeholder for future glassmorphic UI.
final
hashCode → int
The hash code for this object.
no setterinherited
headerBuilder → MediaSettingsModalHeaderBuilder?
final
isDarkMode → bool
Dark mode toggle for modern styling. Note: Pending modern implementation - placeholder for future glassmorphic UI.
final
isVisible → bool
final
labelTextStyle → TextStyle?
final
onClose → VoidCallback
final
parameters → MediaSettingsModalParameters
final
position → String
final
renderMode → ModalRenderMode
Render mode for the modal (modal, sidebar, or inline). When set to sidebar or inline, returns content without modal wrapper.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sectionBuilder → MediaSettingsModalSectionBuilder?
final
switchAudioOnPress → SwitchAudioType
final
switchButtonChild → Widget?
final
switchButtonStyle → ButtonStyle?
final
switchCameraOnPress → SwitchVideoAltType
final
switchVideoOnPress → SwitchVideoType
final
titleTextStyle → TextStyle?
final
wrapperBuilder → MediaSettingsModalWrapperBuilder?
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited