@startuml abstract class TestUserDefaultsApi { codec: MessageCodec --- -_testBinaryMessengerBinding(): TestDefaultBinaryMessengerBinding? remove(): void setBool(): void setDouble(): void setValue(): void getAll(): Map clear(): bool setup(): void } TestUserDefaultsApi ..> MessageCodec class _MockSharedPreferencesApi { items: Map --- getAll(): Map remove(): void setBool(): void setDouble(): void setValue(): void clear(): bool } _MockSharedPreferencesApi ..|> TestUserDefaultsApi class MyApp { --- build(): Widget } StatelessWidget <|-- MyApp class SharedPreferencesDemo { --- createState(): SharedPreferencesDemoState } StatefulWidget <|-- SharedPreferencesDemo class SharedPreferencesDemoState { -_prefs: SharedPreferencesStorePlatform -_counter: Future -_prefKey: String --- -_incrementCounter(): Future initState(): void build(): Widget } State <|-- SharedPreferencesDemoState SharedPreferencesDemoState ..> SharedPreferencesStorePlatform SharedPreferencesDemoState ..> Future abstract class UserDefaultsApi { --- remove(): void setBool(): void setDouble(): void setValue(): void getAll(): Map clear(): bool } class SharedPreferencesFoundation { -_api: UserDefaultsApi -_defaultPrefix: String -_setters: Map --- registerWith(): void clear(): Future clearWithPrefix(): Future clearWithParameters(): Future getAll(): Future> getAllWithPrefix(): Future> getAllWithParameters(): Future> remove(): Future setValue(): Future } SharedPreferencesStorePlatform <|-- SharedPreferencesFoundation SharedPreferencesFoundation ..> UserDefaultsApi class UserDefaultsApi { -_binaryMessenger: BinaryMessenger? codec: MessageCodec --- remove(): Future setBool(): Future setDouble(): Future setValue(): Future getAll(): Future> clear(): Future } UserDefaultsApi ..> BinaryMessenger UserDefaultsApi ..> MessageCodec class _ApiLogger { log: List textureMessage: TextureMessage? createMessage: CreateMessage? positionMessage: PositionMessage? loopingMessage: LoopingMessage? volumeMessage: VolumeMessage? playbackSpeedMessage: PlaybackSpeedMessage? mixWithOthersMessage: MixWithOthersMessage? --- create(): TextureMessage dispose(): void initialize(): void pause(): void play(): void setMixWithOthers(): void position(): PositionMessage seekTo(): Future setLooping(): void setVolume(): void setPlaybackSpeed(): void } _ApiLogger ..> TextureMessage _ApiLogger ..> CreateMessage _ApiLogger ..> PositionMessage _ApiLogger ..> LoopingMessage _ApiLogger ..> VolumeMessage _ApiLogger ..> PlaybackSpeedMessage _ApiLogger ..> MixWithOthersMessage _ApiLogger ..|> TestHostVideoPlayerApi class _TestHostVideoPlayerApiCodec { --- writeValue(): void readValueOfType(): Object? } StandardMessageCodec <|-- _TestHostVideoPlayerApiCodec abstract class TestHostVideoPlayerApi { codec: MessageCodec --- -_testBinaryMessengerBinding(): TestDefaultBinaryMessengerBinding? initialize(): void create(): TextureMessage dispose(): void setLooping(): void setVolume(): void setPlaybackSpeed(): void play(): void position(): PositionMessage seekTo(): Future pause(): void setMixWithOthers(): void setup(): void } TestHostVideoPlayerApi ..> MessageCodec class VideoPlayerValue { duration: Duration position: Duration buffered: List isPlaying: bool isBuffering: bool playbackSpeed: double errorDescription: String? size: Size isInitialized: bool --- hasError(): bool aspectRatio(): double copyWith(): VideoPlayerValue ==(): bool hashCode(): int } VideoPlayerValue ..> Size class MiniController { dataSource: String dataSourceType: DataSourceType package: String? -_timer: Timer? -_creatingCompleter: Completer? -_eventSubscription: StreamSubscription? kUninitializedTextureId: int -_textureId: int --- textureId(): int initialize(): Future dispose(): Future play(): Future pause(): Future -_applyPlayPause(): Future -_applyPlaybackSpeed(): Future position(): Future seekTo(): Future setPlaybackSpeed(): Future -_updatePosition(): void } ValueNotifier <|-- MiniController MiniController ..> DataSourceType MiniController ..> Timer class VideoPlayer { controller: MiniController --- createState(): State } StatefulWidget <|-- VideoPlayer VideoPlayer ..> MiniController class _VideoPlayerState { -_listener: VoidCallback -_textureId: int --- initState(): void didUpdateWidget(): void deactivate(): void build(): Widget } State <|-- _VideoPlayerState _VideoPlayerState ..> VoidCallback class _VideoScrubber { child: Widget controller: MiniController --- createState(): _VideoScrubberState } StatefulWidget <|-- _VideoScrubber _VideoScrubber ..> Widget _VideoScrubber ..> MiniController class _VideoScrubberState { --- controller(): MiniController build(): Widget } State <|-- _VideoScrubberState class VideoProgressIndicator { controller: MiniController --- createState(): State } StatefulWidget <|-- VideoProgressIndicator VideoProgressIndicator ..> MiniController class _VideoProgressIndicatorState { listener: VoidCallback --- controller(): MiniController initState(): void deactivate(): void build(): Widget } State <|-- _VideoProgressIndicatorState _VideoProgressIndicatorState ..> VoidCallback class _App { --- build(): Widget } StatelessWidget <|-- _App class _ButterFlyAssetVideo { --- createState(): _ButterFlyAssetVideoState } StatefulWidget <|-- _ButterFlyAssetVideo class _ButterFlyAssetVideoState { -_controller: MiniController --- initState(): void dispose(): void build(): Widget } State <|-- _ButterFlyAssetVideoState _ButterFlyAssetVideoState ..> MiniController class _BumbleBeeRemoteVideo { --- createState(): _BumbleBeeRemoteVideoState } StatefulWidget <|-- _BumbleBeeRemoteVideo class _BumbleBeeRemoteVideoState { -_controller: MiniController --- initState(): void dispose(): void build(): Widget } State <|-- _BumbleBeeRemoteVideoState _BumbleBeeRemoteVideoState ..> MiniController class _BumbleBeeEncryptedLiveStream { --- createState(): _BumbleBeeEncryptedLiveStreamState } StatefulWidget <|-- _BumbleBeeEncryptedLiveStream class _BumbleBeeEncryptedLiveStreamState { -_controller: MiniController --- initState(): void dispose(): void build(): Widget } State <|-- _BumbleBeeEncryptedLiveStreamState _BumbleBeeEncryptedLiveStreamState ..> MiniController class _ControlsOverlay { -_examplePlaybackRates: List controller: MiniController --- build(): Widget } StatelessWidget <|-- _ControlsOverlay _ControlsOverlay ..> MiniController class TextureMessage { textureId: int --- } class LoopingMessage { textureId: int isLooping: bool --- } class VolumeMessage { textureId: int volume: double --- } class PlaybackSpeedMessage { textureId: int speed: double --- } class PositionMessage { textureId: int position: int --- } class CreateMessage { asset: String? uri: String? packageName: String? formatHint: String? httpHeaders: Map --- } class MixWithOthersMessage { mixWithOthers: bool --- } abstract class AVFoundationVideoPlayerApi { --- initialize(): void create(): TextureMessage dispose(): void setLooping(): void setVolume(): void setPlaybackSpeed(): void play(): void position(): PositionMessage seekTo(): void pause(): void setMixWithOthers(): void } class AVFoundationVideoPlayer { -_api: AVFoundationVideoPlayerApi -_videoFormatStringMap: Map --- registerWith(): void init(): Future dispose(): Future create(): Future setLooping(): Future play(): Future pause(): Future setVolume(): Future setPlaybackSpeed(): Future seekTo(): Future getPosition(): Future videoEventsFor(): Stream buildView(): Widget setMixWithOthers(): Future -_eventChannelFor(): EventChannel -_toDurationRange(): DurationRange } VideoPlayerPlatform <|-- AVFoundationVideoPlayer AVFoundationVideoPlayer ..> AVFoundationVideoPlayerApi class TextureMessage { textureId: int --- encode(): Object decode(): TextureMessage } class LoopingMessage { textureId: int isLooping: bool --- encode(): Object decode(): LoopingMessage } class VolumeMessage { textureId: int volume: double --- encode(): Object decode(): VolumeMessage } class PlaybackSpeedMessage { textureId: int speed: double --- encode(): Object decode(): PlaybackSpeedMessage } class PositionMessage { textureId: int position: int --- encode(): Object decode(): PositionMessage } class CreateMessage { asset: String? uri: String? packageName: String? formatHint: String? httpHeaders: Map --- encode(): Object decode(): CreateMessage } class MixWithOthersMessage { mixWithOthers: bool --- encode(): Object decode(): MixWithOthersMessage } class _AVFoundationVideoPlayerApiCodec { --- writeValue(): void readValueOfType(): Object? } StandardMessageCodec <|-- _AVFoundationVideoPlayerApiCodec class AVFoundationVideoPlayerApi { -_binaryMessenger: BinaryMessenger? codec: MessageCodec --- initialize(): Future create(): Future dispose(): Future setLooping(): Future setVolume(): Future setPlaybackSpeed(): Future play(): Future position(): Future seekTo(): Future pause(): Future setMixWithOthers(): Future } AVFoundationVideoPlayerApi ..> BinaryMessenger AVFoundationVideoPlayerApi ..> MessageCodec class FakePathProviderLinux { --- getApplicationSupportPath(): Future getTemporaryPath(): Future getLibraryPath(): Future getApplicationDocumentsPath(): Future getDownloadsPath(): Future } PathProviderPlatform <|-- FakePathProviderLinux FakePathProviderLinux ..|> PathProviderLinux class MyApp { --- build(): Widget } StatelessWidget <|-- MyApp class SharedPreferencesDemo { --- createState(): SharedPreferencesDemoState } StatefulWidget <|-- SharedPreferencesDemo class SharedPreferencesDemoState { prefs: SharedPreferencesLinux -_counter: Future --- -_incrementCounter(): Future initState(): void build(): Widget } State <|-- SharedPreferencesDemoState SharedPreferencesDemoState ..> SharedPreferencesLinux SharedPreferencesDemoState ..> Future class SharedPreferencesLinux { instance: SharedPreferencesLinux -_defaultPrefix: String -_cachedPreferences: Map? fs: FileSystem pathProvider: PathProviderLinux --- registerWith(): void -_getLocalDataFile(): Future -_reload(): Future> -_readPreferences(): Future> -_writePreferences(): Future clear(): Future clearWithPrefix(): Future clearWithParameters(): Future getAll(): Future> getAllWithPrefix(): Future> getAllWithParameters(): Future> remove(): Future setValue(): Future } SharedPreferencesStorePlatform <|-- SharedPreferencesLinux SharedPreferencesLinux ..> SharedPreferencesLinux SharedPreferencesLinux ..> FileSystem SharedPreferencesLinux ..> PathProviderLinux class _FakeGioUtils { application: int? applicationId: Pointer? libraryIsPresent: bool --- gApplicationGetDefault(): int gApplicationGetApplicationId(): Pointer } _FakeGioUtils ..> Pointer _FakeGioUtils ..|> GioUtils class MyApp { --- createState(): State } StatefulWidget <|-- MyApp class _MyAppState { -_tempDirectory: String? -_downloadsDirectory: String? -_appSupportDirectory: String? -_appCacheDirectory: String? -_documentsDirectory: String? -_provider: PathProviderLinux --- initState(): void initDirectories(): Future build(): Widget } State <|-- _MyAppState _MyAppState ..> PathProviderLinux class PathProviderLinux { -_environment: Map -_executableName: String? -_applicationId: String? --- registerWith(): void getTemporaryPath(): Future getApplicationSupportPath(): Future getApplicationDocumentsPath(): Future getApplicationCachePath(): Future getDownloadsPath(): Future -_getExecutableName(): Future -_getId(): Future } PathProviderPlatform <|-- PathProviderLinux class GioUtils { -_gio: DynamicLibrary? --- libraryIsPresent(): bool gApplicationGetDefault(): int gApplicationGetApplicationId(): Pointer } GioUtils ..> DynamicLibrary abstract class VirtualKeyboardLayoutKeys { activeIndex: int --- defaultEnglishLayout(): List defaultArabicLayout(): List activeLayout(): List getLanguagesCount(): int getLanguage(): List switchLanguage(): void } class VirtualKeyboardDefaultLayoutKeys { defaultLayouts: List --- getLanguagesCount(): int getLanguage(): List } VirtualKeyboardLayoutKeys <|-- VirtualKeyboardDefaultLayoutKeys class VirtualKeyboard { type: VirtualKeyboardType onKeyPress: Function? onReturnKey: Function? height: double width: double? textColor: Color fontSize: double customLayoutKeys: VirtualKeyboardLayoutKeys? textController: TextEditingController? builder: Widget Function(BuildContext context, VirtualKeyboardKey key)? alwaysCaps: bool reverseLayout: bool unfocus: bool defaultLayouts: List? --- createState(): State } StatefulWidget <|-- VirtualKeyboard VirtualKeyboard ..> VirtualKeyboardType VirtualKeyboard ..> Function VirtualKeyboard ..> Color VirtualKeyboard ..> VirtualKeyboardLayoutKeys VirtualKeyboard ..> TextEditingController class _VirtualKeyboardState { type: VirtualKeyboardType onKeyPress: Function? onReturnKey: Function? textController: TextEditingController builder: Widget Function(BuildContext context, VirtualKeyboardKey key)? height: double width: double? textColor: Color fontSize: double alwaysCaps: bool reverseLayout: bool unfocus: bool customLayoutKeys: VirtualKeyboardLayoutKeys textStyle: TextStyle isShiftEnabled: bool longPress: bool --- -_onKeyPress(): void dispose(): void didUpdateWidget(): void initState(): void build(): Widget -_insertKeyAtPosition(): void -_alphanumeric(): Widget -_numeric(): Widget -_rows(): List -_keyboardDefaultKey(): Widget -_keyboardDefaultActionKey(): Widget } State <|-- _VirtualKeyboardState _VirtualKeyboardState ..> VirtualKeyboardType _VirtualKeyboardState ..> Function _VirtualKeyboardState ..> TextEditingController _VirtualKeyboardState ..> Color _VirtualKeyboardState ..> VirtualKeyboardLayoutKeys _VirtualKeyboardState ..> TextStyle class VirtualKeyboardKey { text: String? capsText: String? keyType: VirtualKeyboardKeyType action: VirtualKeyboardKeyAction? --- } VirtualKeyboardKey ..> VirtualKeyboardKeyType VirtualKeyboardKey ..> VirtualKeyboardKeyAction class Point { x: T y: T --- toString(): String } Point ..> T class ChartPainter { data: List> maxY: double context: BuildContext --- paint(): void paintRect(): void shouldRepaint(): bool } CustomPainter <|-- ChartPainter ChartPainter ..> BuildContext class RealTimeChart { stream: Stream maxY: double valueDesc: String valueType: String maxValueDesc: String? maxValueType: String? updateDelay: Duration speed: int --- createState(): State } StatefulWidget <|-- RealTimeChart RealTimeChart ..> Stream class _RealTimeChartState { -_streamSubscription: StreamSubscription? data: List> timer: Timer? --- initState(): void dispose(): void -_streamListener(): void build(): Widget } State <|-- _RealTimeChartState _RealTimeChartState ..> Timer class TagesschauApiUrls { main: null news: null placeholderImage: null logoImage: null --- } class EnemyComponent { speed: null initialSize: Vector2 --- onLoad(): Future update(): void takeHit(): void } SpriteAnimationComponent <|-- EnemyComponent EnemyComponent ..> Vector2 class EnemyCreator { random: Random -_halfWidth: null --- onTick(): void } TimerComponent <|-- EnemyCreator EnemyCreator ..> Random class StarComponent { speed: null --- update(): void } SpriteAnimationComponent <|-- StarComponent class PlayerComponent { bulletCreator: TimerComponent -_bulletAngles: null --- onLoad(): Future -_createBullet(): void beginFire(): void stopFire(): void takeHit(): void onCollisionStart(): void } SpriteAnimationComponent <|-- PlayerComponent PlayerComponent ..> TimerComponent class StarBackGroundCreator { gapSize: null spriteSheet: SpriteSheet random: Random --- onLoad(): Future -_createStarAt(): void -_createRowOfStars(): void -_createInitialStars(): void } Component <|-- StarBackGroundCreator StarBackGroundCreator ..> SpriteSheet StarBackGroundCreator ..> Random class BulletComponent { speed: null velocity: Vector2 deltaPosition: Vector2 --- onLoad(): Future onCollisionStart(): void update(): void } SpriteAnimationComponent <|-- BulletComponent BulletComponent ..> Vector2 class ExplosionComponent { --- onLoad(): Future } SpriteAnimationComponent <|-- ExplosionComponent class RogueShooterWidget { --- build(): Widget } StatelessWidget <|-- RogueShooterWidget class RogueShooterGame { description: String -_player: PlayerComponent -_componentCounter: TextComponent -_scoreText: TextComponent -_updateTime: null -_renderTime: TextComponent -_score: int --- onLoad(): Future update(): void onPanStart(): void onPanEnd(): void onPanCancel(): void onPanUpdate(): void increaseScore(): void } FlameGame <|-- RogueShooterGame RogueShooterGame ..> PlayerComponent RogueShooterGame ..> TextComponent class SpriteBenchmark { description: null countdown: null emberSize: null emberCounter: TextComponent counterPrefix: null posX: double posY: double window: Queue -_sum: double spriteCount: int windowSize: int textPaint: TextPaint --- backgroundColor(): Color onLoad(): Future fps(): double update(): void } FlameGame <|-- SpriteBenchmark SpriteBenchmark ..> TextComponent SpriteBenchmark ..> Queue SpriteBenchmark ..> TextPaint class BenchmarkWorld { random: Random --- onTapDown(): void } World <|-- BenchmarkWorld BenchmarkWorld ..> Random class Ember { --- onLoad(): Future } SpriteAnimationComponent <|-- Ember class Benchmark { title: String desc: String buttonText: String route: RoutesBenchmark --- } Benchmark ..> RoutesBenchmark class BenchmarkScreen { --- build(): Widget } StatelessWidget <|-- BenchmarkScreen class SpriteBenchmarkScreen { --- build(): Widget } StatelessWidget <|-- SpriteBenchmarkScreen class VideoBenchmarkScreen { --- createState(): State } StatefulWidget <|-- VideoBenchmarkScreen class _VideoBenchmarkScreenState { -_controller: VideoPlayerController selectedMode: String --- initState(): void dispose(): void build(): Widget } State <|-- _VideoBenchmarkScreenState _VideoBenchmarkScreenState ..> VideoPlayerController class RogueShooterScreen { --- createState(): State } StatefulWidget <|-- RogueShooterScreen class _RogueShooterScreenState { --- build(): Widget } State <|-- _RogueShooterScreenState class VsyncBenchmarkScreen { --- build(): Widget } StatelessWidget <|-- VsyncBenchmarkScreen class ShaderHomePage { --- createState(): State } StatefulWidget <|-- ShaderHomePage class _ShaderHomePageState { delta: double shader: FragmentShader? -_ticker: Ticker --- loadMyShader(): void initState(): void dispose(): void build(): Widget } State <|-- _ShaderHomePageState _ShaderHomePageState ..> FragmentShader _ShaderHomePageState ..> Ticker class ShaderPainter { shader: FragmentShader time: double --- paint(): void shouldRepaint(): bool } CustomPainter <|-- ShaderPainter ShaderPainter ..> FragmentShader class MapBenchmarkScreen { --- createState(): State } StatefulWidget <|-- MapBenchmarkScreen class _MapBenchmarkScreenState { -_typeMap: TypeMap --- build(): Widget } State <|-- _MapBenchmarkScreenState _MapBenchmarkScreenState ..> TypeMap class BenchmarkCard { benchmark: Benchmark --- build(): Widget } StatelessWidget <|-- BenchmarkCard BenchmarkCard ..> Benchmark class WifiController { --- build(): Future -_device(): NetworkManagerDevice wifiStream(): Stream<(NetworkManagerDevice, NetworkManagerClient)> disconnectFromWifiNetwork(): void connectToWifiNetwork(): void } _$WifiController <|-- WifiController class SettingsScreen { --- build(): Widget } ConsumerWidget <|-- SettingsScreen class ColorSeedButton { --- build(): Widget } ConsumerWidget <|-- ColorSeedButton class WifiSettingsScreen { --- build(): Widget } ConsumerWidget <|-- WifiSettingsScreen class AccessPointScreen { accessPoint: NetworkManagerAccessPoint? --- build(): Widget } ConsumerWidget <|-- AccessPointScreen AccessPointScreen ..> NetworkManagerAccessPoint class AccessPointPasswordDialog { accessPoint: NetworkManagerAccessPoint? --- build(): Widget } ConsumerWidget <|-- AccessPointPasswordDialog AccessPointPasswordDialog ..> NetworkManagerAccessPoint class AccessPointTileDemo { --- build(): Widget } ConsumerWidget <|-- AccessPointTileDemo class AccessPointTile { accessPoint: NetworkManagerAccessPoint client: NetworkManagerClient device: NetworkManagerDevice --- build(): Widget } ConsumerWidget <|-- AccessPointTile AccessPointTile ..> NetworkManagerAccessPoint AccessPointTile ..> NetworkManagerClient AccessPointTile ..> NetworkManagerDevice class WifiBarIcon { strength: int size: double? color: Color? --- build(): Widget } StatelessWidget <|-- WifiBarIcon WifiBarIcon ..> Color class HomeScreen { --- createState(): State } StatefulWidget <|-- HomeScreen class _HomeScreenState { --- initState(): void build(): Widget } State <|-- _HomeScreenState class MaterialDemoScreen { --- createState(): State } StatefulWidget <|-- MaterialDemoScreen class _MaterialDemoScreenState { switch1: bool switch2: bool sliderValue1: double sliderValue2: double navBarIndex: int indicatorPlayAnimation: bool --- build(): Widget } State <|-- _MaterialDemoScreenState class ComponentDecoration { child: Widget title: String --- build(): Widget } StatelessWidget <|-- ComponentDecoration ComponentDecoration ..> Widget class ScrollStateController { --- build(): bool toggle(): void } _$ScrollStateController <|-- ScrollStateController class NewsController { --- build(): Future appendPage(): Future } _$NewsController <|-- NewsController class NewsRepository { -_dio: Dio --- fetchNews(): Future fetchNewsPage(): void -_extractDate(): String } NewsRepository ..> Dio abstract class $NewsCopyWith { --- call(): $Res teaserImage(): $TeaserImageCopyWith<$Res>? brandingImage(): $TeaserImageCopyWith<$Res>? } class _$NewsCopyWithImpl { -_value: $Val -_then: $Res Function($Val) --- call(): $Res teaserImage(): $TeaserImageCopyWith<$Res>? brandingImage(): $TeaserImageCopyWith<$Res>? } _$NewsCopyWithImpl ..> $Val _$NewsCopyWithImpl ..|> $NewsCopyWith abstract class _$$NewsImplCopyWith { --- call(): $Res teaserImage(): $TeaserImageCopyWith<$Res>? brandingImage(): $TeaserImageCopyWith<$Res>? } _$$NewsImplCopyWith ..|> $NewsCopyWith class __$$NewsImplCopyWithImpl { --- call(): $Res } _$NewsCopyWithImpl <|-- __$$NewsImplCopyWithImpl __$$NewsImplCopyWithImpl ..|> _$$NewsImplCopyWith class _$NewsImpl { title: String? teaserImage: TeaserImage? brandingImage: TeaserImage? date: String? type: String? --- toString(): String debugFillProperties(): void ==(): bool hashCode(): int copyWith(): _$$NewsImplCopyWith<_$NewsImpl> toJson(): Map } _$NewsImpl ..> TeaserImage _$NewsImpl ..|> _News abstract class _News { --- title(): String? teaserImage(): TeaserImage? brandingImage(): TeaserImage? date(): String? type(): String? copyWith(): _$$NewsImplCopyWith<_$NewsImpl> } _News ..|> News abstract class $TeaserImageCopyWith { --- call(): $Res } class _$TeaserImageCopyWithImpl { -_value: $Val -_then: $Res Function($Val) --- call(): $Res } _$TeaserImageCopyWithImpl ..> $Val _$TeaserImageCopyWithImpl ..|> $TeaserImageCopyWith abstract class _$$TeaserImageImplCopyWith { --- call(): $Res } _$$TeaserImageImplCopyWith ..|> $TeaserImageCopyWith class __$$TeaserImageImplCopyWithImpl { --- call(): $Res } _$TeaserImageCopyWithImpl <|-- __$$TeaserImageImplCopyWithImpl __$$TeaserImageImplCopyWithImpl ..|> _$$TeaserImageImplCopyWith class _$TeaserImageImpl { -_imageVariants: Map? --- imageVariants(): Map? toString(): String ==(): bool hashCode(): int copyWith(): _$$TeaserImageImplCopyWith<_$TeaserImageImpl> toJson(): Map } _$TeaserImageImpl ..|> _TeaserImage abstract class _TeaserImage { --- imageVariants(): Map? copyWith(): _$$TeaserImageImplCopyWith<_$TeaserImageImpl> } _TeaserImage ..|> TeaserImage class News { --- } class TeaserImage { --- } class RegionNews { --- } abstract class $RegionNewsCopyWith { --- call(): $Res } class _$RegionNewsCopyWithImpl { -_value: $Val -_then: $Res Function($Val) --- call(): $Res } _$RegionNewsCopyWithImpl ..> $Val _$RegionNewsCopyWithImpl ..|> $RegionNewsCopyWith abstract class _$$RegionNewsImplCopyWith { --- call(): $Res } _$$RegionNewsImplCopyWith ..|> $RegionNewsCopyWith class __$$RegionNewsImplCopyWithImpl { --- call(): $Res } _$RegionNewsCopyWithImpl <|-- __$$RegionNewsImplCopyWithImpl __$$RegionNewsImplCopyWithImpl ..|> _$$RegionNewsImplCopyWith class _$RegionNewsImpl { -_news: List nextPage: String? --- news(): List toString(): String debugFillProperties(): void ==(): bool hashCode(): int copyWith(): _$$RegionNewsImplCopyWith<_$RegionNewsImpl> toJson(): Map } _$RegionNewsImpl ..|> _RegionNews abstract class _RegionNews { --- news(): List nextPage(): String? copyWith(): _$$RegionNewsImplCopyWith<_$RegionNewsImpl> } _RegionNews ..|> RegionNews class NewsScreen { --- createState(): State } StatefulWidget <|-- NewsScreen class _NewsScreenState { -_isGrid: bool --- build(): Widget } State <|-- _NewsScreenState class NewsGridItem { news: News --- build(): Widget } StatelessWidget <|-- NewsGridItem NewsGridItem ..> News class NewsListItem { news: News --- build(): Widget } StatelessWidget <|-- NewsListItem NewsListItem ..> News class NewsGrid { scrollController: ScrollController --- -_isBottom(): bool -_hasScrolledDown(): bool build(): Widget } ConsumerWidget <|-- NewsGrid NewsGrid ..> ScrollController class NewsList { scrollController: ScrollController --- -_isBottom(): bool -_hasScrolledDown(): bool build(): Widget } ConsumerWidget <|-- NewsList NewsList ..> ScrollController class MorseService { -_chips: null -_morseAlphabet: Map --- printMessage(): void -_getRaspberryGPIO(): GpioChip } class LedScreen { --- build(): Widget } ConsumerWidget <|-- LedScreen class MatrixService { spi: null --- setLedsOn(): void } class Pixel { offset: Offset color: Color --- } Pixel ..> Offset Pixel ..> Color class PixelPainter { pixels: List --- paint(): void shouldRepaint(): bool } CustomPainter <|-- PixelPainter class MatrixScreen { --- createState(): State } StatefulWidget <|-- MatrixScreen class _MatrixScreenState { pixels: List color: Color --- -_updatePixel(): void build(): Widget } State <|-- _MatrixScreenState _MatrixScreenState ..> Color class MemoryService { --- build(): Future freeMemory(): Stream } _$MemoryService <|-- MemoryService class SystemResourcesScreen { --- build(): Widget } ConsumerWidget <|-- SystemResourcesScreen class SharedPrefs { -_sharedPrefs: SharedPreferences -_instance: SharedPrefs --- init(): Future setValue(): void getValue(): dynamic } SharedPrefs ..> SharedPreferences SharedPrefs ..> SharedPrefs class UseMaterial3 { --- build(): bool toggle(): void } _$UseMaterial3 <|-- UseMaterial3 class UseDarkMode { --- build(): bool toggle(): void } _$UseDarkMode <|-- UseDarkMode class ColorSeedSelected { --- build(): ColorSeed setColorSeed(): void } _$ColorSeedSelected <|-- ColorSeedSelected class ShowPerformanceOverlay { --- build(): bool toggle(): void } _$ShowPerformanceOverlay <|-- ShowPerformanceOverlay class CustomLayoutKeys { --- getLanguagesCount(): int getLanguage(): List } VirtualKeyboardLayoutKeys <|-- CustomLayoutKeys class FadeTransitionPage { -_curveTween: CurveTween --- } CustomTransitionPage <|-- FadeTransitionPage FadeTransitionPage ..> CurveTween class MenuDrawer { --- build(): Widget } StatelessWidget <|-- MenuDrawer class ScaffoldWithStatusbar { appBar: AppBar? body: Widget? floatingActionButton: FloatingActionButton? --- build(): Widget } StatelessWidget <|-- ScaffoldWithStatusbar ScaffoldWithStatusbar ..> AppBar ScaffoldWithStatusbar ..> Widget ScaffoldWithStatusbar ..> FloatingActionButton class HomeScaffold { selectedTab: RoutesHome child: Widget appBar: AppBar? --- build(): Widget } StatelessWidget <|-- HomeScaffold HomeScaffold ..> RoutesHome HomeScaffold ..> Widget HomeScaffold ..> AppBar class TextInputDialog { controller: TextEditingController title: String onReturnPress: Function? hintText: String? --- build(): Widget } ConsumerWidget <|-- TextInputDialog TextInputDialog ..> TextEditingController TextInputDialog ..> Function class StatusBar { --- build(): Widget } ConsumerWidget <|-- StatusBar class ClockWidget { textStyle: TextStyle? --- build(): Widget } ConsumerWidget <|-- ClockWidget ClockWidget ..> TextStyle class FloatingMenuButton { popupMenuButton: PopupMenuButton? --- build(): Widget } StatelessWidget <|-- FloatingMenuButton FloatingMenuButton ..> PopupMenuButton class App { --- build(): Widget } ConsumerWidget <|-- App @enduml