appflowy_backend.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. export 'package:async/async.dart';
  2. import 'dart:convert';
  3. import 'dart:io';
  4. import 'dart:async';
  5. import 'package:appflowy_backend/rust_stream.dart';
  6. import 'package:flutter/services.dart';
  7. import 'dart:ffi';
  8. import 'env_serde.dart';
  9. import 'ffi.dart' as ffi;
  10. import 'package:ffi/ffi.dart';
  11. enum ExceptionType {
  12. AppearanceSettingsIsEmpty,
  13. }
  14. class FlowySDKException implements Exception {
  15. ExceptionType type;
  16. FlowySDKException(this.type);
  17. }
  18. class FlowySDK {
  19. static const MethodChannel _channel = MethodChannel('appflowy_backend');
  20. static Future<String> get platformVersion async {
  21. final String version = await _channel.invokeMethod('getPlatformVersion');
  22. return version;
  23. }
  24. FlowySDK();
  25. void dispose() {}
  26. Future<void> init(Directory sdkDir) async {
  27. final port = RustStreamReceiver.shared.port;
  28. ffi.set_stream_port(port);
  29. ffi.store_dart_post_cobject(NativeApi.postCObject);
  30. ffi.init_sdk(sdkDir.path.toNativeUtf8());
  31. }
  32. void setEnv(AppFlowyEnv env) {
  33. final jsonStr = jsonEncode(env.toJson());
  34. ffi.set_env(jsonStr.toNativeUtf8());
  35. }
  36. }