react-native-flic2 0.3.26 → 2.0.0-alpha.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Flic2.podspec +22 -0
- package/{LICENSE.md → LICENSE} +1 -1
- package/README.md +17 -523
- package/android/build.gradle +64 -132
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +17 -29
- package/android/src/main/java/com/flic2/Flic2ButtonListener.kt +132 -0
- package/android/src/main/java/com/flic2/Flic2Converter.kt +103 -0
- package/android/src/main/java/com/flic2/Flic2Module.kt +480 -0
- package/android/src/main/java/com/flic2/Flic2Package.kt +33 -0
- package/android/src/main/java/com/flic2/Flic2Service.kt +112 -0
- package/ios/Flic2.h +9 -4
- package/ios/Flic2.mm +610 -0
- package/ios/flic2lib.framework/Headers/FLICButton.h +1 -1
- package/ios/flic2lib.framework/Headers/FLICManager.h +1 -1
- package/ios/flic2lib.framework/Info.plist +0 -0
- package/ios/flic2lib.framework/Modules/module.modulemap +1 -1
- package/ios/flic2lib.framework/flic2lib +0 -0
- package/lib/module/NativeFlic2.js +14 -0
- package/lib/module/NativeFlic2.js.map +1 -0
- package/lib/module/index.js +91 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeFlic2.d.ts +119 -0
- package/lib/typescript/src/NativeFlic2.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +81 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +132 -19
- package/src/NativeFlic2.ts +157 -0
- package/src/index.tsx +159 -0
- package/.editorconfig +0 -7
- package/.gitattributes +0 -1
- package/.idea/codeStyles/Project.xml +0 -116
- package/.idea/modules.xml +0 -8
- package/.idea/react-native-flic2.iml +0 -9
- package/.idea/vcs.xml +0 -6
- package/.idea/workspace.xml +0 -140
- package/android/.classpath +0 -6
- package/android/.gradle/5.4.1/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/5.4.1/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/5.4.1/fileChanges/last-build.bin +0 -0
- package/android/.gradle/5.4.1/fileContent/fileContent.lock +0 -0
- package/android/.gradle/5.4.1/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/5.4.1/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/5.4.1/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/5.4.1/gc.properties +0 -0
- package/android/.gradle/5.4.1/javaCompile/classAnalysis.bin +0 -0
- package/android/.gradle/5.4.1/javaCompile/jarAnalysis.bin +0 -0
- package/android/.gradle/5.4.1/javaCompile/javaCompile.lock +0 -0
- package/android/.gradle/5.4.1/javaCompile/taskHistory.bin +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/caches/build_file_checksums.ser +0 -0
- package/android/.idea/codeStyles/Project.xml +0 -116
- package/android/.idea/gradle.xml +0 -18
- package/android/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml +0 -11
- package/android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml +0 -11
- package/android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml +0 -9
- package/android/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml +0 -9
- package/android/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml +0 -10
- package/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_1_10_0_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_1_10_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_1_10_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_1_10_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_1_10_0_aar.xml +0 -15
- package/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0_aar.xml +0 -12
- package/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_facebook_react_react_native_0_59_10_aar.xml +0 -17
- package/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_6_0_aar.xml +0 -14
- package/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_12_1_jar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_12_1_jar.xml +0 -13
- package/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_15_0_jar.xml +0 -13
- package/android/.idea/libraries/Gradle__io_flic_flic2lib_android_1_1_0_aar.xml +0 -14
- package/android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml +0 -13
- package/android/.idea/misc.xml +0 -14
- package/android/.idea/modules.xml +0 -8
- package/android/.idea/runConfigurations.xml +0 -12
- package/android/.idea/vcs.xml +0 -6
- package/android/.idea/workspace.xml +0 -348
- package/android/.project +0 -34
- package/android/.settings/org.eclipse.buildship.core.prefs +0 -13
- package/android/README.md +0 -14
- package/android/android.iml +0 -139
- package/android/build/generated/source/buildConfig/debug/nl/xguard/flic2/BuildConfig.java +0 -13
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +0 -46
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/output.json +0 -1
- package/android/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
- package/android/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -15
- package/android/build/intermediates/incremental/packageDebugResources/merged.dir/values/values.xml +0 -4
- package/android/build/intermediates/incremental/packageDebugResources/merger.xml +0 -2
- package/android/build/intermediates/library_manifest/debug/AndroidManifest.xml +0 -46
- package/android/build/intermediates/merged_manifests/debug/output.json +0 -1
- package/android/build/intermediates/packaged_res/debug/drawable/ic_launcher_background.xml +0 -74
- package/android/build/intermediates/packaged_res/debug/drawable-v24/ic_launcher_foreground.xml +0 -34
- package/android/build/intermediates/packaged_res/debug/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/android/build/intermediates/packaged_res/debug/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
- package/android/build/intermediates/packaged_res/debug/mipmap-hdpi-v4/ic_launcher.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-hdpi-v4/ic_launcher_round.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-mdpi-v4/ic_launcher.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-mdpi-v4/ic_launcher_round.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-xhdpi-v4/ic_launcher.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-xhdpi-v4/ic_launcher_round.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-xxhdpi-v4/ic_launcher.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-xxhdpi-v4/ic_launcher_round.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-xxxhdpi-v4/ic_launcher.png +0 -0
- package/android/build/intermediates/packaged_res/debug/mipmap-xxxhdpi-v4/ic_launcher_round.png +0 -0
- package/android/build/intermediates/packaged_res/debug/values/values.xml +0 -4
- package/android/build/intermediates/res/symbol-table-with-package/debug/package-aware-r.txt +0 -989
- package/android/build/intermediates/symbols/debug/R.txt +0 -1302
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -95
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -6
- package/android/gradlew +0 -172
- package/android/gradlew.bat +0 -84
- package/android/local.properties +0 -8
- package/android/src/main/ic_launcher-web.png +0 -0
- package/android/src/main/java/nl/xguard/flic2/Flic2.java +0 -213
- package/android/src/main/java/nl/xguard/flic2/Flic2Package.java +0 -28
- package/android/src/main/java/nl/xguard/flic2/communication/IReactEvent.java +0 -15
- package/android/src/main/java/nl/xguard/flic2/communication/NullReactEvent.java +0 -47
- package/android/src/main/java/nl/xguard/flic2/communication/ReactEvent.java +0 -230
- package/android/src/main/java/nl/xguard/flic2/model/IReactFlic2Manager.java +0 -27
- package/android/src/main/java/nl/xguard/flic2/model/NullReactFlic2Manager.java +0 -70
- package/android/src/main/java/nl/xguard/flic2/model/ReactAndroidHandler.java +0 -33
- package/android/src/main/java/nl/xguard/flic2/model/ReactFlic2ButtonListener.java +0 -106
- package/android/src/main/java/nl/xguard/flic2/model/ReactFlic2Manager.java +0 -168
- package/android/src/main/java/nl/xguard/flic2/model/ReactFlic2ScanCallback.java +0 -48
- package/android/src/main/java/nl/xguard/flic2/model/ReactLogger.java +0 -14
- package/android/src/main/java/nl/xguard/flic2/service/Flic2Service.java +0 -200
- package/android/src/main/java/nl/xguard/flic2/service/Flic2ServiceConnection.java +0 -41
- package/android/src/main/java/nl/xguard/flic2/service/IFlic2Service.java +0 -13
- package/android/src/main/java/nl/xguard/flic2/sharedpreferences/flic2SharedPreferences.java +0 -35
- package/android/src/main/java/nl/xguard/flic2/util/ActivityUtil.java +0 -29
- package/android/src/main/java/nl/xguard/flic2/util/Consumer.java +0 -12
- package/android/src/main/res/drawable/ic_launcher_background.xml +0 -74
- package/android/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
- package/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
- package/android/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/android/src/main/res/values/ids.xml +0 -5
- package/build/generated/source/buildConfig/debug/com/flic2/BuildConfig.java +0 -13
- package/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -46
- package/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output.json +0 -1
- package/build/intermediates/annotation_processor_list/debug/annotationProcessors.json +0 -1
- package/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
- package/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
- package/build/intermediates/incremental/debug-mergeJniLibs/merge-state +0 -0
- package/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
- package/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
- package/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
- package/build/intermediates/incremental/packageDebugResources/compile-file-map.properties +0 -15
- package/build/intermediates/incremental/packageDebugResources/merger.xml +0 -2
- package/build/intermediates/intermediate-jars/debug/classes.jar +0 -0
- package/build/intermediates/intermediate-jars/debug/res.jar +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/BuildConfig.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/Flic2Module$1.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/Flic2Module.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/Flic2Package.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/callback/flic2ButtonCallback.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/communication/ReactEvent.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/service/Flic2Service$BootUpReceiver.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/service/Flic2Service$UpdateReceiver.class +0 -0
- package/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/flic2/service/Flic2Service.class +0 -0
- package/build/intermediates/library_manifest/debug/AndroidManifest.xml +0 -46
- package/build/intermediates/merged_manifests/debug/output.json +0 -1
- package/build/intermediates/packaged-classes/debug/classes.jar +0 -0
- package/build/intermediates/packaged_res/debug/drawable/ic_launcher_background.xml +0 -74
- package/build/intermediates/packaged_res/debug/drawable-v24/ic_launcher_foreground.xml +0 -34
- package/build/intermediates/packaged_res/debug/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/build/intermediates/packaged_res/debug/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
- package/build/intermediates/packaged_res/debug/mipmap-hdpi-v4/ic_launcher.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-hdpi-v4/ic_launcher_round.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-mdpi-v4/ic_launcher.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-mdpi-v4/ic_launcher_round.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-xhdpi-v4/ic_launcher.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-xhdpi-v4/ic_launcher_round.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-xxhdpi-v4/ic_launcher.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-xxhdpi-v4/ic_launcher_round.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-xxxhdpi-v4/ic_launcher.png +0 -0
- package/build/intermediates/packaged_res/debug/mipmap-xxxhdpi-v4/ic_launcher_round.png +0 -0
- package/build/intermediates/res/symbol-table-with-package/debug/package-aware-r.txt +0 -1290
- package/build/intermediates/symbols/debug/R.txt +0 -1764
- package/build/intermediates/transforms/mergeJavaRes/debug/0.jar +0 -0
- package/build/intermediates/transforms/mergeJavaRes/debug/__content__.json +0 -1
- package/build/intermediates/transforms/mergeJniLibs/debug/__content__.json +0 -1
- package/build/intermediates/transforms/stripDebugSymbol/debug/__content__.json +0 -1
- package/build/outputs/aar/react-native-flic2-debug.aar +0 -0
- package/build/outputs/logs/manifest-merger-debug-report.txt +0 -95
- package/flic2Button.js +0 -170
- package/index.js +0 -430
- package/ios/Flic2.m +0 -611
- package/ios/Flic2.xcodeproj/project.pbxproj +0 -320
- package/ios/Flic2.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
- package/ios/Flic2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/Flic2.xcodeproj/project.xcworkspace/xcuserdata/wesdewitte.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/Flic2.xcodeproj/xcshareddata/xcschemes/Flic2.xcscheme +0 -66
- package/ios/Flic2.xcodeproj/xcuserdata/wesdewitte.xcuserdatad/xcschemes/xcschememanagement.plist +0 -22
- package/ios/Flic2.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/Flic2.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/ios/Flic2.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -5
- package/ios/Flic2.xcworkspace/xcuserdata/wesdewitte.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/Flic2.xcworkspace/xcuserdata/wesdewitte.xcuserdatad/WorkspaceSettings.xcsettings +0 -14
- package/react-native-flic2.podspec +0 -26
package/ios/Flic2.mm
ADDED
|
@@ -0,0 +1,610 @@
|
|
|
1
|
+
#import "Flic2.h"
|
|
2
|
+
#import <React/RCTBridgeModule.h>
|
|
3
|
+
|
|
4
|
+
@implementation Flic2
|
|
5
|
+
|
|
6
|
+
- (instancetype)init {
|
|
7
|
+
self = [super init];
|
|
8
|
+
return self;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
12
|
+
|
|
13
|
+
NSLog(@"multiply: %f * %f", a, b);
|
|
14
|
+
NSNumber *result = @(a * b);
|
|
15
|
+
|
|
16
|
+
[self emitOnMultiply:@{@"a": @(a), @"b": @(b), @"result": result}];
|
|
17
|
+
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// MARK: - FLICManager Methods
|
|
22
|
+
|
|
23
|
+
- (void)initialize:(BOOL)background
|
|
24
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
25
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
26
|
+
{
|
|
27
|
+
// Configure the shared manager (this is the correct way)
|
|
28
|
+
FLICManager *manager = [FLICManager configureWithDelegate:self buttonDelegate:self background:background];
|
|
29
|
+
|
|
30
|
+
if (manager) {
|
|
31
|
+
self.manager = manager; // Store reference for our own use
|
|
32
|
+
resolve(@{@"success": @YES, @"message": @"Manager initialized successfully"});
|
|
33
|
+
} else {
|
|
34
|
+
reject(@"INIT_ERROR", @"Failed to initialize FLICManager", nil);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
- (void)getButtons:(RCTPromiseResolveBlock)resolve
|
|
39
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
40
|
+
{
|
|
41
|
+
if (!self.manager) {
|
|
42
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (!self.managerRestored) {
|
|
47
|
+
reject(@"NOT_RESTORED", @"Manager not restored yet. Wait for managerDidRestoreState", nil);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
52
|
+
NSMutableArray *buttonDicts = [[NSMutableArray alloc] init];
|
|
53
|
+
|
|
54
|
+
for (FLICButton *button in buttons) {
|
|
55
|
+
[buttonDicts addObject:[self buttonToDictionary:button]];
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
resolve(buttonDicts);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
- (void)scanForButtons:(RCTPromiseResolveBlock)resolve
|
|
62
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
63
|
+
{
|
|
64
|
+
if (!self.manager) {
|
|
65
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (!self.managerRestored) {
|
|
70
|
+
reject(@"NOT_RESTORED", @"Manager not restored yet. Wait for managerDidRestoreState", nil);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
NSLog(@"Starting scan");
|
|
75
|
+
|
|
76
|
+
__weak Flic2 *weakSelf = self;
|
|
77
|
+
|
|
78
|
+
[[FLICManager sharedManager] scanForButtonsWithStateChangeHandler:^(FLICButtonScannerStatusEvent event) {
|
|
79
|
+
NSLog(@"Scan state change: %@", [weakSelf scannerEventToString:event]);
|
|
80
|
+
[weakSelf emitOnScanStatusChange:@{
|
|
81
|
+
@"event": @(event),
|
|
82
|
+
@"eventName": [weakSelf scannerEventToString:event]
|
|
83
|
+
}];
|
|
84
|
+
} completion:^(FLICButton * _Nullable button, NSError * _Nullable error) {
|
|
85
|
+
NSLog(@"Scan completion called - button: %@, error: %@", button ? @"YES" : @"NO", error);
|
|
86
|
+
|
|
87
|
+
if (error) {
|
|
88
|
+
NSLog(@"Scan error: %@ (code: %ld)", error.localizedDescription, (long)error.code);
|
|
89
|
+
// Check for specific error codes
|
|
90
|
+
if (error.code == FLICButtonScannerErrorCodeUserCanceled) {
|
|
91
|
+
NSLog(@"Scan was cancelled by user");
|
|
92
|
+
} else if (error.code == FLICButtonScannerErrorCodeNoPublicButtonDiscovered) {
|
|
93
|
+
NSLog(@"No Flic button found in range");
|
|
94
|
+
} else {
|
|
95
|
+
NSLog(@"Scan error: %@", error.localizedDescription);
|
|
96
|
+
}
|
|
97
|
+
} else if (button) {
|
|
98
|
+
NSLog(@"Button found: %@", button.uuid);
|
|
99
|
+
|
|
100
|
+
// Set trigger mode and auto-connect like old implementation
|
|
101
|
+
button.triggerMode = FLICButtonTriggerModeClickAndDoubleClickAndHold;
|
|
102
|
+
[button connect];
|
|
103
|
+
|
|
104
|
+
// Emit button event for discovered button
|
|
105
|
+
[weakSelf emitOnButtonEvent:@{
|
|
106
|
+
@"uuid": button.uuid,
|
|
107
|
+
@"event": @"discovered",
|
|
108
|
+
@"button": [weakSelf buttonToDictionary:button]
|
|
109
|
+
}];
|
|
110
|
+
} else {
|
|
111
|
+
NSLog(@"No button found and no error");
|
|
112
|
+
}
|
|
113
|
+
}];
|
|
114
|
+
|
|
115
|
+
// Return immediately - scan results will come through events
|
|
116
|
+
resolve(@{@"success": @YES, @"message": @"Scan started"});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
- (void)stopScan:(RCTPromiseResolveBlock)resolve
|
|
120
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
121
|
+
{
|
|
122
|
+
if (!self.manager) {
|
|
123
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
NSLog(@"Stopping scan");
|
|
128
|
+
[[FLICManager sharedManager] stopScan];
|
|
129
|
+
resolve(@{@"success": @YES, @"message": @"Scan stopped"});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
- (void)forgetButton:(NSString *)uuid
|
|
133
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
134
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
135
|
+
{
|
|
136
|
+
if (!self.manager) {
|
|
137
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Find button in shared manager's buttons array
|
|
142
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
143
|
+
FLICButton *button = nil;
|
|
144
|
+
for (FLICButton *btn in buttons) {
|
|
145
|
+
if ([btn.uuid isEqualToString:uuid]) {
|
|
146
|
+
button = btn;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (!button) {
|
|
152
|
+
reject(@"BUTTON_NOT_FOUND", @"Button not found", nil);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Disconnect before forgetting like old implementation
|
|
157
|
+
[button disconnect];
|
|
158
|
+
|
|
159
|
+
[[FLICManager sharedManager] forgetButton:button completion:^(NSUUID *uuid, NSError * _Nullable error) {
|
|
160
|
+
if (error) {
|
|
161
|
+
reject(@"FORGET_ERROR", error.localizedDescription, error);
|
|
162
|
+
} else {
|
|
163
|
+
resolve(@{@"success": @YES, @"message": @"Button forgotten"});
|
|
164
|
+
}
|
|
165
|
+
}];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// MARK: - FLICButton Methods
|
|
169
|
+
|
|
170
|
+
- (void)connectButton:(NSString *)uuid
|
|
171
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
172
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
173
|
+
{
|
|
174
|
+
// Find button in shared manager's buttons array
|
|
175
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
176
|
+
FLICButton *button = nil;
|
|
177
|
+
for (FLICButton *btn in buttons) {
|
|
178
|
+
if ([btn.uuid isEqualToString:uuid]) {
|
|
179
|
+
button = btn;
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (!button) {
|
|
185
|
+
reject(@"BUTTON_NOT_FOUND", @"Button not found", nil);
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
[button connect];
|
|
190
|
+
resolve(@{@"success": @YES, @"message": @"Connection initiated"});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
- (void)disconnectButton:(NSString *)uuid
|
|
194
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
195
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
196
|
+
{
|
|
197
|
+
// Find button in shared manager's buttons array
|
|
198
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
199
|
+
FLICButton *button = nil;
|
|
200
|
+
for (FLICButton *btn in buttons) {
|
|
201
|
+
if ([btn.uuid isEqualToString:uuid]) {
|
|
202
|
+
button = btn;
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (!button) {
|
|
208
|
+
reject(@"BUTTON_NOT_FOUND", @"Button not found", nil);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
[button disconnect];
|
|
213
|
+
resolve(@{@"success": @YES, @"message": @"Disconnection initiated"});
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
- (void)setTriggerMode:(NSString *)uuid mode:(NSInteger)mode
|
|
217
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
218
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
219
|
+
{
|
|
220
|
+
// Find button in shared manager's buttons array
|
|
221
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
222
|
+
FLICButton *button = nil;
|
|
223
|
+
for (FLICButton *btn in buttons) {
|
|
224
|
+
if ([btn.uuid isEqualToString:uuid]) {
|
|
225
|
+
button = btn;
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
if (!button) {
|
|
231
|
+
reject(@"BUTTON_NOT_FOUND", @"Button not found", nil);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
button.triggerMode = (FLICButtonTriggerMode)mode;
|
|
236
|
+
resolve(@{@"success": @YES, @"message": @"Trigger mode set"});
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
- (void)setLatencyMode:(NSString *)uuid mode:(NSInteger)mode
|
|
240
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
241
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
242
|
+
{
|
|
243
|
+
// Find button in shared manager's buttons array
|
|
244
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
245
|
+
FLICButton *button = nil;
|
|
246
|
+
for (FLICButton *btn in buttons) {
|
|
247
|
+
if ([btn.uuid isEqualToString:uuid]) {
|
|
248
|
+
button = btn;
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
if (!button) {
|
|
254
|
+
reject(@"BUTTON_NOT_FOUND", @"Button not found", nil);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
button.latencyMode = (FLICLatencyMode)mode;
|
|
259
|
+
resolve(@{@"success": @YES, @"message": @"Latency mode set"});
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
- (void)setNickname:(NSString *)uuid nickname:(NSString *)nickname
|
|
263
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
264
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
265
|
+
{
|
|
266
|
+
// Find button in shared manager's buttons array
|
|
267
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
268
|
+
FLICButton *button = nil;
|
|
269
|
+
for (FLICButton *btn in buttons) {
|
|
270
|
+
if ([btn.uuid isEqualToString:uuid]) {
|
|
271
|
+
button = btn;
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
if (!button) {
|
|
277
|
+
reject(@"BUTTON_NOT_FOUND", @"Button not found", nil);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
button.nickname = nickname;
|
|
282
|
+
resolve(@{@"success": @YES, @"message": @"Nickname set"});
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// MARK: - Helper Methods
|
|
286
|
+
|
|
287
|
+
- (void)connectAllKnownButtons:(RCTPromiseResolveBlock)resolve
|
|
288
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
289
|
+
{
|
|
290
|
+
if (!self.manager) {
|
|
291
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
296
|
+
|
|
297
|
+
for (FLICButton *button in buttons) {
|
|
298
|
+
NSLog(@"Flic2 Connect button: %@", button.name);
|
|
299
|
+
button.triggerMode = FLICButtonTriggerModeClickAndDoubleClickAndHold;
|
|
300
|
+
[button connect];
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
resolve(@{@"success": @YES, @"message": @"All buttons connection initiated"});
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
- (void)disconnectAllKnownButtons:(RCTPromiseResolveBlock)resolve
|
|
307
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
308
|
+
{
|
|
309
|
+
if (!self.manager) {
|
|
310
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
315
|
+
|
|
316
|
+
for (FLICButton *button in buttons) {
|
|
317
|
+
NSLog(@"Flic2 disconnect button: %@", button.name);
|
|
318
|
+
[button disconnect];
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
resolve(@{@"success": @YES, @"message": @"All buttons disconnection initiated"});
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
- (void)forgetAllButtons:(RCTPromiseResolveBlock)resolve
|
|
325
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
326
|
+
{
|
|
327
|
+
if (!self.manager) {
|
|
328
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
NSArray<FLICButton *> *buttons = [[FLICManager sharedManager] buttons];
|
|
333
|
+
|
|
334
|
+
for (FLICButton *button in buttons) {
|
|
335
|
+
[button disconnect];
|
|
336
|
+
[[FLICManager sharedManager] forgetButton:button completion:^(NSUUID *uuid, NSError * _Nullable error) {
|
|
337
|
+
// Individual completion handlers not needed for bulk operation
|
|
338
|
+
}];
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
resolve(@{@"success": @YES, @"message": @"All buttons forgotten"});
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
- (void)isScanning:(RCTPromiseResolveBlock)resolve
|
|
345
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
346
|
+
{
|
|
347
|
+
if (!self.manager) {
|
|
348
|
+
reject(@"NOT_INITIALIZED", @"Manager not initialized", nil);
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
BOOL scanning = [[FLICManager sharedManager] isScanning];
|
|
353
|
+
resolve(@(scanning));
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// MARK: - FLICManagerDelegate
|
|
357
|
+
|
|
358
|
+
- (void)managerDidRestoreState:(FLICManager *)manager {
|
|
359
|
+
self.managerRestored = YES;
|
|
360
|
+
NSLog(@"Manager state restored - ready for operations");
|
|
361
|
+
[self emitOnManagerStateChange:@{
|
|
362
|
+
@"event": @"restored",
|
|
363
|
+
@"message": @"Manager state restored"
|
|
364
|
+
}];
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
- (void)manager:(FLICManager *)manager didUpdateState:(FLICManagerState)state {
|
|
368
|
+
[self emitOnManagerStateChange:@{
|
|
369
|
+
@"state": @(state),
|
|
370
|
+
@"stateName": [self managerStateToString:state],
|
|
371
|
+
@"event": @"stateChanged"
|
|
372
|
+
}];
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// MARK: - FLICButtonDelegate
|
|
376
|
+
|
|
377
|
+
- (void)buttonDidConnect:(FLICButton *)button {
|
|
378
|
+
[self emitOnButtonEvent:@{
|
|
379
|
+
@"uuid": button.uuid,
|
|
380
|
+
@"event": @"connected",
|
|
381
|
+
@"button": [self buttonToDictionary:button]
|
|
382
|
+
}];
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
- (void)buttonIsReady:(FLICButton *)button {
|
|
386
|
+
[self emitOnButtonEvent:@{
|
|
387
|
+
@"uuid": button.uuid,
|
|
388
|
+
@"event": @"ready",
|
|
389
|
+
@"button": [self buttonToDictionary:button]
|
|
390
|
+
}];
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
- (void)button:(FLICButton *)button didDisconnectWithError:(NSError * _Nullable)error {
|
|
394
|
+
NSMutableDictionary *eventData = [NSMutableDictionary dictionaryWithDictionary:@{
|
|
395
|
+
@"uuid": button.uuid,
|
|
396
|
+
@"event": @"disconnected",
|
|
397
|
+
@"button": [self buttonToDictionary:button]
|
|
398
|
+
}];
|
|
399
|
+
|
|
400
|
+
if (error) {
|
|
401
|
+
eventData[@"error"] = @{
|
|
402
|
+
@"code": @(error.code),
|
|
403
|
+
@"message": error.localizedDescription
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
[self emitOnButtonEvent:eventData];
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
- (void)button:(FLICButton *)button didFailToConnectWithError:(NSError * _Nullable)error {
|
|
411
|
+
[self emitOnButtonEvent:@{
|
|
412
|
+
@"uuid": button.uuid,
|
|
413
|
+
@"event": @"connectionFailed",
|
|
414
|
+
@"error": @{
|
|
415
|
+
@"code": @(error.code),
|
|
416
|
+
@"message": error.localizedDescription
|
|
417
|
+
},
|
|
418
|
+
@"button": [self buttonToDictionary:button]
|
|
419
|
+
}];
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
- (void)button:(FLICButton *)button didReceiveButtonDown:(BOOL)queued age:(NSInteger)age {
|
|
423
|
+
[self emitOnButtonEvent:@{
|
|
424
|
+
@"uuid": button.uuid,
|
|
425
|
+
@"event": @"buttonDown",
|
|
426
|
+
@"queued": @(queued),
|
|
427
|
+
@"age": @(age),
|
|
428
|
+
@"button": [self buttonToDictionary:button]
|
|
429
|
+
}];
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
- (void)button:(FLICButton *)button didReceiveButtonUp:(BOOL)queued age:(NSInteger)age {
|
|
433
|
+
[self emitOnButtonEvent:@{
|
|
434
|
+
@"uuid": button.uuid,
|
|
435
|
+
@"event": @"buttonUp",
|
|
436
|
+
@"queued": @(queued),
|
|
437
|
+
@"age": @(age),
|
|
438
|
+
@"button": [self buttonToDictionary:button]
|
|
439
|
+
}];
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
- (void)button:(FLICButton *)button didReceiveButtonClick:(BOOL)queued age:(NSInteger)age {
|
|
443
|
+
[self emitOnButtonEvent:@{
|
|
444
|
+
@"uuid": button.uuid,
|
|
445
|
+
@"event": @"click",
|
|
446
|
+
@"queued": @(queued),
|
|
447
|
+
@"age": @(age),
|
|
448
|
+
@"button": [self buttonToDictionary:button]
|
|
449
|
+
}];
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
- (void)button:(FLICButton *)button didReceiveButtonDoubleClick:(BOOL)queued age:(NSInteger)age {
|
|
453
|
+
[self emitOnButtonEvent:@{
|
|
454
|
+
@"uuid": button.uuid,
|
|
455
|
+
@"event": @"doubleClick",
|
|
456
|
+
@"queued": @(queued),
|
|
457
|
+
@"age": @(age),
|
|
458
|
+
@"button": [self buttonToDictionary:button]
|
|
459
|
+
}];
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
- (void)button:(FLICButton *)button didReceiveButtonHold:(BOOL)queued age:(NSInteger)age {
|
|
463
|
+
[self emitOnButtonEvent:@{
|
|
464
|
+
@"uuid": button.uuid,
|
|
465
|
+
@"event": @"hold",
|
|
466
|
+
@"queued": @(queued),
|
|
467
|
+
@"age": @(age),
|
|
468
|
+
@"button": [self buttonToDictionary:button]
|
|
469
|
+
}];
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
- (void)button:(FLICButton *)button didUnpairWithError:(NSError * _Nullable)error {
|
|
473
|
+
[self emitOnButtonEvent:@{
|
|
474
|
+
@"uuid": button.uuid,
|
|
475
|
+
@"event": @"unpaired",
|
|
476
|
+
@"button": [self buttonToDictionary:button]
|
|
477
|
+
}];
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
- (void)button:(FLICButton *)button didUpdateBatteryVoltage:(float)voltage {
|
|
481
|
+
[self emitOnButtonEvent:@{
|
|
482
|
+
@"uuid": button.uuid,
|
|
483
|
+
@"event": @"batteryUpdate",
|
|
484
|
+
@"voltage": @(voltage),
|
|
485
|
+
@"button": [self buttonToDictionary:button]
|
|
486
|
+
}];
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
- (void)button:(FLICButton *)button didUpdateNickname:(NSString *)nickname {
|
|
490
|
+
[self emitOnButtonEvent:@{
|
|
491
|
+
@"uuid": button.uuid,
|
|
492
|
+
@"event": @"nicknameUpdate",
|
|
493
|
+
@"nickname": nickname,
|
|
494
|
+
@"button": [self buttonToDictionary:button]
|
|
495
|
+
}];
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
// MARK: - Helper Methods
|
|
499
|
+
|
|
500
|
+
- (NSDictionary *)buttonToDictionary:(FLICButton *)button {
|
|
501
|
+
return @{
|
|
502
|
+
@"uuid": button.uuid,
|
|
503
|
+
@"identifier": button.identifier.UUIDString,
|
|
504
|
+
@"name": button.name ?: @"",
|
|
505
|
+
@"nickname": button.nickname ?: @"",
|
|
506
|
+
@"bluetoothAddress": button.bluetoothAddress,
|
|
507
|
+
@"serialNumber": button.serialNumber,
|
|
508
|
+
@"state": @(button.state),
|
|
509
|
+
@"stateName": [self buttonStateToString:button.state],
|
|
510
|
+
@"triggerMode": @(button.triggerMode),
|
|
511
|
+
@"triggerModeName": [self triggerModeToString:button.triggerMode],
|
|
512
|
+
@"latencyMode": @(button.latencyMode),
|
|
513
|
+
@"latencyModeName": [self latencyModeToString:button.latencyMode],
|
|
514
|
+
@"pressCount": @(button.pressCount),
|
|
515
|
+
@"firmwareRevision": @(button.firmwareRevision),
|
|
516
|
+
@"isReady": @(button.isReady),
|
|
517
|
+
@"batteryVoltage": @(button.batteryVoltage),
|
|
518
|
+
@"isUnpaired": @(button.isUnpaired)
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
- (NSString *)managerStateToString:(FLICManagerState)state {
|
|
523
|
+
switch (state) {
|
|
524
|
+
case FLICManagerStateUnknown:
|
|
525
|
+
return @"unknown";
|
|
526
|
+
case FLICManagerStateResetting:
|
|
527
|
+
return @"resetting";
|
|
528
|
+
case FLICManagerStateUnsupported:
|
|
529
|
+
return @"unsupported";
|
|
530
|
+
case FLICManagerStateUnauthorized:
|
|
531
|
+
return @"unauthorized";
|
|
532
|
+
case FLICManagerStatePoweredOff:
|
|
533
|
+
return @"poweredOff";
|
|
534
|
+
case FLICManagerStatePoweredOn:
|
|
535
|
+
return @"poweredOn";
|
|
536
|
+
default:
|
|
537
|
+
return @"unknown";
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
- (NSString *)buttonStateToString:(FLICButtonState)state {
|
|
542
|
+
switch (state) {
|
|
543
|
+
case FLICButtonStateDisconnected:
|
|
544
|
+
return @"disconnected";
|
|
545
|
+
case FLICButtonStateConnecting:
|
|
546
|
+
return @"connecting";
|
|
547
|
+
case FLICButtonStateConnected:
|
|
548
|
+
return @"connected";
|
|
549
|
+
case FLICButtonStateDisconnecting:
|
|
550
|
+
return @"disconnecting";
|
|
551
|
+
default:
|
|
552
|
+
return @"unknown";
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
- (NSString *)triggerModeToString:(FLICButtonTriggerMode)mode {
|
|
557
|
+
switch (mode) {
|
|
558
|
+
case FLICButtonTriggerModeClickAndHold:
|
|
559
|
+
return @"clickAndHold";
|
|
560
|
+
case FLICButtonTriggerModeClickAndDoubleClick:
|
|
561
|
+
return @"clickAndDoubleClick";
|
|
562
|
+
case FLICButtonTriggerModeClickAndDoubleClickAndHold:
|
|
563
|
+
return @"clickAndDoubleClickAndHold";
|
|
564
|
+
case FLICButtonTriggerModeClick:
|
|
565
|
+
return @"click";
|
|
566
|
+
default:
|
|
567
|
+
return @"unknown";
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
- (NSString *)latencyModeToString:(FLICLatencyMode)mode {
|
|
572
|
+
switch (mode) {
|
|
573
|
+
case FLICLatencyModeNormal:
|
|
574
|
+
return @"normal";
|
|
575
|
+
case FLICLatencyModeLow:
|
|
576
|
+
return @"low";
|
|
577
|
+
default:
|
|
578
|
+
return @"unknown";
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
- (NSString *)scannerEventToString:(FLICButtonScannerStatusEvent)event {
|
|
583
|
+
switch (event) {
|
|
584
|
+
case FLICButtonScannerStatusEventDiscovered:
|
|
585
|
+
return @"discovered";
|
|
586
|
+
case FLICButtonScannerStatusEventConnected:
|
|
587
|
+
return @"connected";
|
|
588
|
+
case FLICButtonScannerStatusEventVerified:
|
|
589
|
+
return @"verified";
|
|
590
|
+
case FLICButtonScannerStatusEventVerificationFailed:
|
|
591
|
+
return @"verificationFailed";
|
|
592
|
+
default:
|
|
593
|
+
return @"unknown";
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
600
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
601
|
+
{
|
|
602
|
+
return std::make_shared<facebook::react::NativeFlic2SpecJSI>(params);
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
+ (NSString *)moduleName
|
|
606
|
+
{
|
|
607
|
+
return @"Flic2";
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
@end
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
4
|
+
|
|
5
|
+
// MARK: - Event Types
|
|
6
|
+
|
|
7
|
+
// MARK: - Flic2 Types
|
|
8
|
+
|
|
9
|
+
// MARK: - Mode Types
|
|
10
|
+
|
|
11
|
+
// MARK: - Spec Interface
|
|
12
|
+
|
|
13
|
+
export default TurboModuleRegistry.getEnforcing('Flic2');
|
|
14
|
+
//# sourceMappingURL=NativeFlic2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeFlic2.ts"],"mappings":";;AAAA,SACEA,mBAAmB,QAGd,cAAc;;AAErB;;AA+CA;;AAsDA;;AAKA;;AA4CA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,OAAO,CAAC","ignoreList":[]}
|