create static method
- EpubConfig config
Method used to create an instance of epuBear SDK using config.
Implementation
static Future<EpubearSdk> create(EpubConfig config) async {
EpubearSdk sdk = EpubearSdk._(config);
if (Platform.isAndroid) {
epuBearInitAndroid();
} else if (Platform.isIOS) {
await epuBearInitIos();
}
sdk._setEntity(getSdkEntity());
createdSdks.add(sdk);
initArena = Arena();
Pointer<EpubConfigNative> nativeConfig = initArena.allocate(sizeOf<EpubConfigNative>()).cast();
nativeConfig.ref.user = BufferString.fromDartString(config.user);
nativeConfig.ref.info = BufferString.fromDartString(config.info);
nativeConfig.ref.key = BufferString.fromDartString(config.key);
nativeConfig.ref.dpi = config.dpi;
nativeConfig.ref.initializeApiData = NativeApi.initializeApiDLData;
nativeConfig.ref.messagePort = sdk._createCallbackMessageListener();
String masterCssString = config.masterCss ?? await rootBundle.loadString('assets/master.css');
Pointer<BufferString> masterCss = BufferString.fromDartString(masterCssString);
initSdkNative?.call(sdk._sdk, nativeConfig, masterCss);
BufferString.destroy(masterCss);
if (config.fontsPackagePath != null) {
Pointer<FileData> fontsPackageFile = await _loadAssetAsFile(initArena, 'fonts.pkg');
initFontsNative?.call(sdk._sdk, fontsPackageFile);
}
BufferString.destroy(nativeConfig.ref.user);
BufferString.destroy(nativeConfig.ref.info);
BufferString.destroy(nativeConfig.ref.key);
return sdk;
}