Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/tizen_app_control/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
## NEXT
## 0.2.2

* Improve FFI symbol resolution.
* Resolve linter warnings.

## 0.2.1
Expand Down
2 changes: 1 addition & 1 deletion packages/tizen_app_control/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ To use this package, add `tizen_app_control` as a dependency in your `pubspec.ya

```yaml
dependencies:
tizen_app_control: ^0.2.1
tizen_app_control: ^0.2.2
```

### Sending a launch request
Expand Down
41 changes: 10 additions & 31 deletions packages/tizen_app_control/lib/src/ffi.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,41 +15,20 @@ typedef CreateAppControl = int Function(Object);
typedef _AttachAppControlNative = Int8 Function(Int32, Handle);
typedef _AttachAppControl = int Function(int, Object);

DynamicLibrary? _libEmbedderCache;

DynamicLibrary get _libEmbedder {
if (_libEmbedderCache == null) {
const List<String> embedderPaths = <String>[
'libflutter_tizen.so',
'libflutter_tizen_common.so',
'libflutter_tizen_mobile.so',
'libflutter_tizen_tv.so',
'libflutter_tizen_wearable.so',
];
for (final String path in embedderPaths) {
try {
_libEmbedderCache = DynamicLibrary.open(path);
break;
} on ArgumentError {
continue;
}
}
if (_libEmbedderCache == null) {
throw Exception('Failed to load the embedder library.');
}
final _InitializeDartApi initFunction = _libEmbedder.lookupFunction<
_InitializeDartApiNative,
_InitializeDartApi>('NativeInitializeDartApi');
initFunction(NativeApi.initializeApiDLData);
}
return _libEmbedderCache!;
}
final DynamicLibrary _processLib = () {
final DynamicLibrary processLib = DynamicLibrary.process();
final _InitializeDartApi initFunction =
processLib.lookupFunction<_InitializeDartApiNative, _InitializeDartApi>(
'NativeInitializeDartApi');
initFunction(NativeApi.initializeApiDLData);
return processLib;
}();

final CreateAppControl nativeCreateAppControl =
_libEmbedder.lookupFunction<_CreateAppControlNative, CreateAppControl>(
_processLib.lookupFunction<_CreateAppControlNative, CreateAppControl>(
'NativeCreateAppControl');
final _AttachAppControl _nativeAttachAppControl =
_libEmbedder.lookupFunction<_AttachAppControlNative, _AttachAppControl>(
_processLib.lookupFunction<_AttachAppControlNative, _AttachAppControl>(
'NativeAttachAppControl');

bool nativeAttachAppControl(int id, Object dartObject) {
Expand Down
2 changes: 1 addition & 1 deletion packages/tizen_app_control/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ description: Tizen application control APIs. Used for launching and terminating
applications on a Tizen device.
homepage: https://github.com/flutter-tizen/plugins
repository: https://github.com/flutter-tizen/plugins/tree/master/packages/tizen_app_control
version: 0.2.1
version: 0.2.2

dependencies:
ffi: ">=1.1.2 <3.0.0"
Expand Down