flutter_readium 0.1.1 copy "flutter_readium: ^0.1.1" to clipboard
flutter_readium: ^0.1.1 copied to clipboard

Flutter plugin for reading EPUB, audiobook, and WebPub publications. Wraps the Readium toolkits on iOS, Android, and Web.

example/lib/main.dart

import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_readium/flutter_readium.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';
import 'package:marionette_flutter/marionette_flutter.dart';
import 'package:marionette_logging/marionette_logging.dart';
import 'package:path_provider/path_provider.dart';

import 'pages/index.dart';
import 'state/index.dart';

Future<void> main() async {
  // Initialize Marionette only in debug mode
  if (kDebugMode) {
    MarionetteBinding.ensureInitialized(
      MarionetteConfiguration(logCollector: LoggingLogCollector()),
    );
  } else {
    WidgetsFlutterBinding.ensureInitialized();
  }

  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((record) {
    debugPrint(ReadiumLog.format(record, colored: !kIsWeb));
  });

  HydratedBloc.storage = await HydratedStorage.build(
    storageDirectory: kIsWeb
        ? HydratedStorageDirectory.web
        : HydratedStorageDirectory((await getTemporaryDirectory()).path),
  );

  // Modify log level for the entire plugin here. The default is LogLevel.info.
  FlutterReadium().setLogLevel(LogLevel.debug);

  runApp(
    MultiBlocProvider(
      providers: [
        BlocProvider(create: (final _) => PublicationBloc(), lazy: false),
        BlocProvider(
          lazy: false, // Needed to apply default preferences on start-up.
          create: (final _) {
            final bloc = TextSettingsBloc();
            bloc.setDefaultPreferences();
            return bloc;
          },
        ),
        // BlocProvider(
        //   create: (final _) => TtsSettingsBloc(),
        //   lazy: false,
        // ),
        BlocProvider(create: (final _) => PlayerControlsBloc()),
        BlocProvider(create: (final _) => PDFSettingsBloc()),
      ],
      child: MyApp(),
    ),
  );
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> with RestorationMixin {
  @override
  String? get restorationId => 'root';

  @override
  void restoreState(RestorationBucket? oldBucket, bool initialRestore) {
    // Register any restorable properties here if needed
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      restorationScopeId: 'app',
      routes: {
        '/': (context) => BookshelfPage(),
        '/player': (context) => PlayerPage(),
        '/toc': (context) => TableOfContentsPage(),
        '/pagelist': (context) => PageListPage(),
        '/search': (context) => SearchPage(),
      },
    );
  }
}
0
likes
0
points
504
downloads

Publisher

verified publisherkb.dk

Weekly Downloads

Flutter plugin for reading EPUB, audiobook, and WebPub publications. Wraps the Readium toolkits on iOS, Android, and Web.

Repository (GitHub)
View/report issues

Topics

#readium #ebook #audiobook #comic #tts

License

unknown (license)

Dependencies

collection, flutter, flutter_readium_platform_interface, flutter_web_plugins, wakelock_plus, web

More

Packages that depend on flutter_readium

Packages that implement flutter_readium