mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-11-04 12:03:28 +00:00 
			
		
		
		
	* feat: support customize folder path * feat: add l10n and optimize the logic * chore: code refactor * feat: add file read/write permission for macOS * fix: add toast for restoring path * feat: fetch apps and show them * feat: fetch apps and show them * feat: implement select document logic * feat: l10n and add select item callback * feat: add space between tile * chore: move file exporter to settings * chore: update UI * feat: support customizing folder when launching the app * feat: auto register after customizing folder * feat: l10n * feat: l10n * chore: reinitialize flowy sdk when calling init_sdk * chore: remove flowysdk const keyword to make sure it can be rebuild * chore: clear kv values when user logout * chore: replace current workspace id key in kv.db * feat: add config.name as a part of seesion_cache_key * feat: support open folder when launching * chore: fix some bugs * chore: dart fix & flutter analyze * chore: wrap 'sign up with ramdom user' as interface * feat: dismiss settings view after changing the folder * fix: read kv value after initializaing with new path * chore: remove user_id prefix from current workspace key * fix: move open latest view action to bloc * test: add test utils for integration tests * chore: move integration_test to its parent directory * test: add integration_test ci * test: switch to B from A, then switch to A again * chore: fix warings and format code and fix tests * chore: remove comment out codes * chore: rename some properties name and optimize the logic * chore: abstract logic of settings file exporter widget to cubit * chore: abstract location customizer view from file system view * chore: abstract settings page index to enum type * chore: remove the redundant underscore * test: fix integration test error * chore: enable integration test for windows and ubuntu * feat: abstract file picker as service and mock it under integration test * chore: fix bloc test Co-authored-by: nathan <nathan@appflowy.io>
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'dart:io';
 | 
						|
 | 
						|
import 'package:flowy_sdk/flowy_sdk.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");
 | 
						|
  }
 | 
						|
}
 |