| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | 
							- import 'dart:io';
 
- import 'package:appflowy_backend/appflowy_backend.dart';
 
- import 'package:path_provider/path_provider.dart';
 
- import '../startup.dart';
 
- class InitRustSDKTask extends LaunchTask {
 
-   InitRustSDKTask({
 
-     this.directory,
 
-   });
 
-   // Customize the RustSDK initialization path
 
-   final Future<Directory>? directory;
 
-   @override
 
-   LaunchTaskType get type => LaunchTaskType.dataProcessing;
 
-   @override
 
-   Future<void> initialize(LaunchContext context) async {
 
-     // use the custom directory
 
-     if (directory != null) {
 
-       return directory!.then((directory) async {
 
-         await context.getIt<FlowySDK>().init(directory);
 
-       });
 
-     } else {
 
-       return appFlowyDocumentDirectory().then((directory) async {
 
-         await context.getIt<FlowySDK>().init(directory);
 
-       });
 
-     }
 
-   }
 
- }
 
- Future<Directory> appFlowyDocumentDirectory() async {
 
-   switch (integrationEnv()) {
 
-     case IntegrationMode.develop:
 
-       Directory documentsDir = await getApplicationDocumentsDirectory();
 
-       return Directory('${documentsDir.path}/flowy_dev').create();
 
-     case IntegrationMode.release:
 
-       Directory documentsDir = await getApplicationDocumentsDirectory();
 
-       return Directory('${documentsDir.path}/flowy').create();
 
-     case IntegrationMode.test:
 
-       return Directory("${Directory.current.path}/.sandbox");
 
-   }
 
- }
 
 
  |