rust_sdk_init_task.dart 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import 'dart:io';
  2. import 'package:app_flowy/startup/launch.dart';
  3. import 'package:app_flowy/startup/startup.dart';
  4. import 'package:bloc/bloc.dart';
  5. import 'package:path_provider/path_provider.dart';
  6. import 'package:flowy_sdk/flowy_sdk.dart';
  7. import 'package:flutter/material.dart';
  8. import 'package:flowy_infra/flowy_logger.dart';
  9. class RustSDKInitTask extends LaunchTask {
  10. @override
  11. LaunchTaskType get type => LaunchTaskType.dataProcessing;
  12. @override
  13. Future<void> initialize(LaunchContext context) async {
  14. WidgetsFlutterBinding.ensureInitialized();
  15. Bloc.observer = ApplicationBlocObserver();
  16. Directory directory = await getApplicationDocumentsDirectory();
  17. final documentPath = directory.path;
  18. final flowySandbox = Directory('$documentPath/flowy');
  19. switch (context.env) {
  20. case IntegrationEnv.dev:
  21. // await context.getIt<FlowySDK>().init(Directory('./temp/flowy_dev'));
  22. await context.getIt<FlowySDK>().init(flowySandbox);
  23. break;
  24. case IntegrationEnv.pro:
  25. await context.getIt<FlowySDK>().init(flowySandbox);
  26. break;
  27. default:
  28. assert(false, 'Unsupported env');
  29. }
  30. return Future(() => {});
  31. }
  32. }
  33. class ApplicationBlocObserver extends BlocObserver {
  34. @override
  35. void onTransition(Bloc bloc, Transition transition) {
  36. Log.debug(transition);
  37. super.onTransition(bloc, transition);
  38. }
  39. @override
  40. void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
  41. Log.debug(error);
  42. super.onError(bloc, error, stackTrace);
  43. }
  44. }
  45. class EngineBlocConfig {
  46. static void setup() {
  47. Bloc.observer = ApplicationBlocObserver();
  48. }
  49. }