sdk_task.dart 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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_log/flowy_log.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. return Directory('$documentPath/flowy')
  19. .create()
  20. .then((Directory directory) async {
  21. switch (context.env) {
  22. case IntegrationEnv.dev:
  23. // await context.getIt<FlowySDK>().init(Directory('./temp/flowy_dev'));
  24. await context.getIt<FlowySDK>().init(directory);
  25. break;
  26. case IntegrationEnv.pro:
  27. await context.getIt<FlowySDK>().init(directory);
  28. break;
  29. default:
  30. assert(false, 'Unsupported env');
  31. }
  32. });
  33. }
  34. }
  35. class ApplicationBlocObserver extends BlocObserver {
  36. @override
  37. // ignore: unnecessary_overrides
  38. void onTransition(Bloc bloc, Transition transition) {
  39. Log.debug(
  40. "[current]: ${transition.currentState} \n[next]: ${transition.nextState}");
  41. super.onTransition(bloc, transition);
  42. }
  43. @override
  44. void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
  45. Log.debug(error);
  46. super.onError(bloc, error, stackTrace);
  47. }
  48. }