Initial project
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
|
||||
|
||||
|
||||
import '../wiring/protocol_sdk_wiring.dart';
|
||||
|
||||
/// SDK API
|
||||
abstract class ProtocolSdkApi
|
||||
{
|
||||
factory ProtocolSdkApi() => ProtocolSdkWiring.build();
|
||||
|
||||
Future<String?> platformVersion();
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
|
||||
import '../../../protocol_sdk.dart';
|
||||
import 'protocol_sdk_core.dart';
|
||||
/// SDK API Implementation
|
||||
class ProtocolSdkApiImpl implements ProtocolSdkApi
|
||||
{
|
||||
final ProtocolSdkCore _core;
|
||||
|
||||
ProtocolSdkApiImpl({required ProtocolSdkCore core}) : _core = core;
|
||||
|
||||
@override
|
||||
Future<String?> platformVersion() => _core.repo.platformVersion();
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
import '../../../protocol_sdk_platform_interface.dart';
|
||||
import '../../domain/repositories/protocol_sdk_repository.dart';
|
||||
|
||||
class ProtocolSdkCore
|
||||
{
|
||||
final ProtocolSdkPlatform platform;
|
||||
final ProtocolSdkRepository repo;
|
||||
|
||||
ProtocolSdkCore({
|
||||
required this.platform,
|
||||
required this.repo,
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
import '../../../protocol_sdk.dart';
|
||||
|
||||
import '../../../protocol_sdk_method_channel.dart';
|
||||
import '../../../protocol_sdk_platform_interface.dart';
|
||||
|
||||
import '../../data/datasources/protocol_sdk_method_channel_datasource.dart';
|
||||
import '../../data/repositories/protocol_sdk_repository_impl.dart';
|
||||
|
||||
import 'protocol_sdk_core.dart';
|
||||
import 'protocol_sdk_api_impl.dart';
|
||||
|
||||
class ProtocolSdkWiring
|
||||
{
|
||||
static ProtocolSdkApi build() {
|
||||
|
||||
// platform instance(method channel)
|
||||
final platform = ProtocolSdkPlatform.instance;
|
||||
if (platform is MethodChannelProtocolSdk) {
|
||||
// platform.init(); // or defer to NotificationApiImpl.init
|
||||
}
|
||||
|
||||
// data layer
|
||||
final ds = ProtocolSdkMethodChannelDataSource(platform);
|
||||
final repo = ProtocolSdkRepositoryImpl(ds);
|
||||
final core = ProtocolSdkCore(platform: platform, repo: repo,);
|
||||
|
||||
return ProtocolSdkApiImpl(core: core);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user