import 'package:d4rt/d4rt.dart'; import 'package:mangayomi/models/video.dart'; class MVideoBridge { final mVideoBridgedClass = BridgedClassDefinition( nativeType: Video, name: 'MVideo', constructors: { '': (visitor, positionalArgs, namedArgs) { return Video( positionalArgs.get(0) ?? '', positionalArgs.get(1) ?? '', positionalArgs.get(2) ?? '', headers: namedArgs.get('headers')?.cast(), subtitles: namedArgs.get?>('subtitles'), audios: namedArgs.get?>('audios'), ); }, }, getters: { 'url': (visitor, target) => (target as Video).url, 'quality': (visitor, target) => (target as Video).quality, 'originalUrl': (visitor, target) => (target as Video).originalUrl, 'headers': (visitor, target) => (target as Video).headers, 'subtitles': (visitor, target) => (target as Video).subtitles, 'audios': (visitor, target) => (target as Video).audios, }, setters: { 'url': (visitor, target, value) => (target as Video).url = value as String, 'quality': (visitor, target, value) => (target as Video).quality = value as String, 'originalUrl': (visitor, target, value) => (target as Video).originalUrl = value as String, 'headers': (visitor, target, value) => (target as Video).headers = (value as Map?)?.cast(), 'subtitles': (visitor, target, value) => (target as Video).subtitles = (value as List?)?.cast(), 'audios': (visitor, target, value) => (target as Video).audios = (value as List?)?.cast(), }, ); void registerBridgedClasses(D4rt interpreter) { interpreter.registerBridgedClass( mVideoBridgedClass, 'package:mangayomi/bridge_lib.dart', ); } }