rust_sdk.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'dart:io';
  2. import 'package:flowy_sdk/flowy_sdk.dart';
  3. import 'package:path_provider/path_provider.dart';
  4. import '../startup.dart';
  5. class InitRustSDKTask extends LaunchTask {
  6. InitRustSDKTask({
  7. this.directory,
  8. });
  9. // Customize the RustSDK initialization path
  10. final Future<Directory>? directory;
  11. @override
  12. LaunchTaskType get type => LaunchTaskType.dataProcessing;
  13. @override
  14. Future<void> initialize(LaunchContext context) async {
  15. // use the custom directory
  16. if (directory != null) {
  17. return directory!.then((directory) async {
  18. await context.getIt<FlowySDK>().init(directory);
  19. });
  20. } else {
  21. return appFlowyDocumentDirectory().then((directory) async {
  22. await context.getIt<FlowySDK>().init(directory);
  23. });
  24. }
  25. }
  26. }
  27. Future<Directory> appFlowyDocumentDirectory() async {
  28. switch (integrationEnv()) {
  29. case IntegrationMode.develop:
  30. Directory documentsDir = await getApplicationDocumentsDirectory();
  31. return Directory('${documentsDir.path}/flowy_dev').create();
  32. case IntegrationMode.release:
  33. Directory documentsDir = await getApplicationDocumentsDirectory();
  34. return Directory('${documentsDir.path}/flowy').create();
  35. case IntegrationMode.test:
  36. return Directory("${Directory.current.path}/.sandbox");
  37. }
  38. }