ilabs-flir 1.0.4 → 1.0.6
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/android/Flir/build.gradle.kts +14 -27
- package/android/Flir/libs/androidsdk-release.aar +0 -0
- package/android/Flir/libs/thermalsdk-release.aar +0 -0
- package/android/Flir/src/main/AndroidManifest.xml +14 -0
- package/android/Flir/src/main/java/flir/android/FlirDownloadManager.kt +23 -44
- package/android/Flir/src/main/java/flir/android/FlirManager.kt +312 -313
- package/android/Flir/src/main/java/flir/android/FlirModule.kt +183 -0
- package/android/Flir/src/main/java/flir/android/FlirSDKLoader.kt +35 -194
- package/android/Flir/src/main/java/flir/android/FlirSdkManager.java +409 -1339
- package/package.json +1 -1
- package/src/index.d.ts +60 -1
- package/android/Flir/libs/flir-stubs.jar +0 -0
- package/android/Flir/src/main/java/com/flir/thermalsdk/ErrorCode.java +0 -13
- package/android/Flir/src/main/java/com/flir/thermalsdk/ErrorCodeException.java +0 -14
- package/android/Flir/src/main/java/com/flir/thermalsdk/ThermalSdkAndroid.java +0 -16
- package/android/Flir/src/main/java/com/flir/thermalsdk/androidsdk/image/BitmapAndroid.java +0 -20
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/ImageBuffer.java +0 -11
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/JavaImageBuffer.java +0 -35
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/Palette.java +0 -15
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/PaletteManager.java +0 -16
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/Point.java +0 -11
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/ThermalImage.java +0 -23
- package/android/Flir/src/main/java/com/flir/thermalsdk/image/ThermalValue.java +0 -9
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/Camera.java +0 -26
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/CameraType.java +0 -8
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/CommunicationInterface.java +0 -16
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/ConnectParameters.java +0 -16
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/Identity.java +0 -23
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/IpSettings.java +0 -9
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/RemoteControl.java +0 -16
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/connectivity/ConnectionStatusListener.java +0 -7
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/discovery/DiscoveryEventListener.java +0 -14
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/discovery/DiscoveryFactory.java +0 -33
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/remote/OnReceived.java +0 -5
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/remote/OnRemoteError.java +0 -7
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/streaming/Stream.java +0 -8
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/streaming/ThermalStreamer.java +0 -28
- package/android/Flir/src/main/java/com/flir/thermalsdk/live/streaming/VisualStreamer.java +0 -18
|
@@ -14,21 +14,20 @@ android {
|
|
|
14
14
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
sourceCompatibility = JavaVersion.
|
|
19
|
-
targetCompatibility = JavaVersion.
|
|
17
|
+
compileOptions {
|
|
18
|
+
sourceCompatibility = JavaVersion.VERSION_21
|
|
19
|
+
targetCompatibility = JavaVersion.VERSION_21
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
kotlinOptions {
|
|
23
|
-
jvmTarget =
|
|
23
|
+
jvmTarget = JavaVersion.VERSION_21.toString()
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
languageVersion.set(JavaLanguageVersion.of(21))
|
|
29
|
-
}
|
|
25
|
+
|
|
26
|
+
buildFeatures {
|
|
27
|
+
viewBinding = true
|
|
30
28
|
}
|
|
31
29
|
|
|
30
|
+
|
|
32
31
|
publishing {
|
|
33
32
|
singleVariant("release") {
|
|
34
33
|
withJavadocJar()
|
|
@@ -37,35 +36,23 @@ android {
|
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
repositories {
|
|
41
|
-
google()
|
|
42
|
-
mavenCentral()
|
|
43
|
-
// Resolve local AARs which will be installed into mavenLocal by CI (JitPack)
|
|
44
|
-
mavenLocal()
|
|
45
|
-
flatDir { dirs("libs") }
|
|
46
|
-
}
|
|
47
|
-
|
|
48
39
|
dependencies {
|
|
49
40
|
// React Native
|
|
50
41
|
implementation("com.facebook.react:react-native:+")
|
|
51
42
|
|
|
52
|
-
// Kotlin coroutines
|
|
43
|
+
// Kotlin coroutines
|
|
53
44
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")
|
|
54
45
|
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
// The actual SDK AARs are downloaded on-demand at runtime via FlirDownload.download()
|
|
61
|
-
compileOnly(files("libs/flir-stubs.jar"))
|
|
46
|
+
// FLIR SDK - Use the actual AAR files from libs folder
|
|
47
|
+
// Using 'api' to expose SDK classes to consumers and Java source files
|
|
48
|
+
// flatDir must be configured in settings.gradle or root build.gradle
|
|
49
|
+
api(files("libs/androidsdk-release.aar"))
|
|
50
|
+
api(files("libs/thermalsdk-release.aar"))
|
|
62
51
|
|
|
63
52
|
// Minimal compile deps to satisfy source references
|
|
64
53
|
implementation("androidx.annotation:annotation:1.5.0")
|
|
65
54
|
|
|
66
|
-
|
|
67
55
|
// Prevent duplicate SLF4J classes when a consumer also brings `org.slf4j:slf4j-api`
|
|
68
|
-
// The vendor AAR may embed slf4j classes; exclude the API from being pulled transitively
|
|
69
56
|
configurations.all {
|
|
70
57
|
exclude(group = "org.slf4j", module = "slf4j-api")
|
|
71
58
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -25,6 +25,20 @@
|
|
|
25
25
|
<!-- Required by ACE SDK architecture for local network communication -->
|
|
26
26
|
<uses-permission android:name="android.permission.INTERNET" />
|
|
27
27
|
|
|
28
|
+
<!-- ============================================ -->
|
|
29
|
+
<!-- WiFi permissions for network discovery -->
|
|
30
|
+
<!-- Required for FLIR ONE Edge and network cams -->
|
|
31
|
+
<!-- ============================================ -->
|
|
32
|
+
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
|
33
|
+
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
|
34
|
+
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
|
|
35
|
+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
|
36
|
+
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
|
37
|
+
|
|
38
|
+
<!-- Location permission required for WiFi scanning on Android 10+ -->
|
|
39
|
+
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
40
|
+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
41
|
+
|
|
28
42
|
<!-- Note: USB permissions are handled at runtime via UsbPermissionHandler -->
|
|
29
43
|
<!-- No additional USB permissions needed in manifest -->
|
|
30
44
|
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
package flir.android
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.*
|
|
4
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
5
|
-
import kotlinx.coroutines.*
|
|
6
4
|
|
|
5
|
+
/**
|
|
6
|
+
* FlirDownloadManager - React Native module for SDK status
|
|
7
|
+
*
|
|
8
|
+
* Since the SDK is now bundled in the AAR, this module just reports
|
|
9
|
+
* that the SDK is always available.
|
|
10
|
+
*/
|
|
7
11
|
class FlirDownloadManager(private val reactContext: ReactApplicationContext) :
|
|
8
12
|
ReactContextBaseJavaModule(reactContext) {
|
|
9
13
|
|
|
10
|
-
private var downloadJob: Job? = null
|
|
11
|
-
private val scope = CoroutineScope(Dispatchers.Main + SupervisorJob())
|
|
12
|
-
|
|
13
14
|
override fun getName() = "FlirDownloadManager"
|
|
14
15
|
|
|
15
16
|
@ReactMethod
|
|
16
17
|
fun isFlirAvailable(promise: Promise) {
|
|
17
|
-
|
|
18
|
+
// SDK is bundled - always available
|
|
19
|
+
promise.resolve(true)
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
@ReactMethod
|
|
21
23
|
fun getDownloadSize(promise: Promise) {
|
|
22
|
-
|
|
24
|
+
// No download needed
|
|
25
|
+
promise.resolve(0.0)
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
@ReactMethod
|
|
@@ -29,48 +32,24 @@ class FlirDownloadManager(private val reactContext: ReactApplicationContext) :
|
|
|
29
32
|
|
|
30
33
|
@ReactMethod
|
|
31
34
|
fun downloadFlirSDK(promise: Promise) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
sendEvent("FlirDownloadProgress", Arguments.createMap().apply {
|
|
35
|
-
putDouble("bytesDownloaded", downloaded.toDouble())
|
|
36
|
-
putDouble("totalBytes", total.toDouble())
|
|
37
|
-
putDouble("percent", (downloaded.toDouble() / total) * 100)
|
|
38
|
-
})
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
result.fold(
|
|
42
|
-
onSuccess = {
|
|
43
|
-
sendEvent("FlirDownloadComplete", Arguments.createMap())
|
|
44
|
-
promise.resolve(true)
|
|
45
|
-
},
|
|
46
|
-
onFailure = { error ->
|
|
47
|
-
sendEvent("FlirDownloadError", Arguments.createMap().apply {
|
|
48
|
-
putString("error", error.message)
|
|
49
|
-
})
|
|
50
|
-
promise.reject("E_DOWNLOAD", error.message, error)
|
|
51
|
-
}
|
|
52
|
-
)
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@ReactMethod
|
|
57
|
-
fun cancelDownload() {
|
|
58
|
-
downloadJob?.cancel()
|
|
35
|
+
// SDK is bundled - no download needed
|
|
36
|
+
promise.resolve(true)
|
|
59
37
|
}
|
|
60
38
|
|
|
61
39
|
@ReactMethod
|
|
62
|
-
fun
|
|
63
|
-
|
|
40
|
+
fun getSDKStatus(promise: Promise) {
|
|
41
|
+
val status = Arguments.createMap().apply {
|
|
42
|
+
putBoolean("available", true)
|
|
43
|
+
putBoolean("bundled", true)
|
|
44
|
+
putString("arch", FlirSDKLoader.getDeviceArch())
|
|
45
|
+
putString("version", "4.16.0")
|
|
46
|
+
}
|
|
47
|
+
promise.resolve(status)
|
|
64
48
|
}
|
|
65
49
|
|
|
66
50
|
@ReactMethod
|
|
67
|
-
fun
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
fun removeListeners(count: Int) {}
|
|
71
|
-
|
|
72
|
-
private fun sendEvent(name: String, params: WritableMap) {
|
|
73
|
-
reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
74
|
-
.emit(name, params)
|
|
51
|
+
fun cancelDownload(promise: Promise) {
|
|
52
|
+
// Nothing to cancel
|
|
53
|
+
promise.resolve(true)
|
|
75
54
|
}
|
|
76
55
|
}
|