@iternio/react-native-auto-play 0.1.16 → 0.2.0-alpha.1
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/README.md +429 -14
- package/android/build.gradle +15 -1
- package/android/gradle.properties +1 -1
- package/android/src/{main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryObserver.kt → auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt} +31 -76
- package/android/src/automotive/AndroidManifest.xml +91 -0
- package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +191 -0
- package/android/src/main/AndroidManifest.xml +0 -10
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoScreen.kt +3 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryHolder.kt +97 -19
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetry.kt +39 -3
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplate.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/TelemetryObserver.kt +56 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/VirtualRenderer.kt +15 -10
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/AutomotivePermissionRequestTemplate.kt +103 -0
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/GridTemplate.kt +0 -2
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/Parser.kt +8 -2
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/template/SignInTemplate.kt +159 -0
- package/ios/extensions/CarPlayExtensions.swift +4 -2
- package/ios/extensions/NitroImageExtensions.swift +4 -4
- package/ios/hybrid/HybridAutoPlay.swift +31 -42
- package/ios/hybrid/HybridCluster.swift +4 -2
- package/ios/hybrid/HybridGridTemplate.swift +11 -11
- package/ios/hybrid/HybridInformationTemplate.swift +12 -13
- package/ios/hybrid/HybridListTemplate.swift +12 -13
- package/ios/hybrid/HybridMapTemplate.swift +13 -16
- package/ios/hybrid/HybridMessageTemplate.swift +7 -4
- package/ios/hybrid/HybridSearchTemplate.swift +12 -13
- package/ios/scenes/AutoPlayInterfaceController.swift +44 -13
- package/ios/scenes/AutoPlayScene.swift +2 -1
- package/ios/scenes/AutoPlaySceneViewController.swift +8 -2
- package/ios/scenes/DashboardSceneDelegate.swift +15 -7
- package/ios/scenes/HeadUnitSceneDelegate.swift +12 -7
- package/ios/scenes/WindowApplicationSceneDelegate.swift +1 -1
- package/ios/templates/AutoPlayTemplate.swift +23 -15
- package/ios/templates/GridTemplate.swift +23 -16
- package/ios/templates/InformationTemplate.swift +12 -11
- package/ios/templates/ListTemplate.swift +11 -11
- package/ios/templates/MapTemplate.swift +40 -32
- package/ios/templates/MessageTemplate.swift +8 -12
- package/ios/templates/Parser.swift +2 -1
- package/ios/templates/SearchTemplate.swift +19 -17
- package/ios/templates/TemplateStore.swift +17 -9
- package/ios/utils/RootModule.swift +19 -12
- package/ios/utils/SymbolFont.swift +2 -1
- package/ios/utils/ViewUtils.swift +2 -2
- package/lib/hooks/useAndroidAutoTelemetry.d.ts +22 -4
- package/lib/hooks/useAndroidAutoTelemetry.js +52 -24
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/specs/AndroidAutoTelemetry.nitro.d.ts +14 -1
- package/lib/specs/SignInTemplate.nitro.d.ts +12 -0
- package/lib/templates/SignInTemplate.d.ts +49 -0
- package/lib/templates/SignInTemplate.js +51 -0
- package/lib/types/SignInMethod.d.ts +38 -0
- package/lib/types/SignInMethod.js +19 -0
- package/lib/types/Telemetry.d.ts +27 -0
- package/lib/types/Telemetry.js +7 -0
- package/nitro.json +3 -0
- package/nitrogen/generated/android/ReactNativeAutoPlay+autolinking.cmake +3 -0
- package/nitrogen/generated/android/ReactNativeAutoPlayOnLoad.cpp +12 -2
- package/nitrogen/generated/android/c++/JBooleanTelemetryItem.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry_.hpp +87 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string.hpp +10 -10
- package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.cpp +41 -5
- package/nitrogen/generated/android/c++/JHybridAndroidAutoTelemetrySpec.hpp +2 -1
- package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.cpp +133 -0
- package/nitrogen/generated/android/c++/JHybridSignInTemplateSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JInputSignIn.hpp +103 -0
- package/nitrogen/generated/android/c++/JKeyboardType.hpp +65 -0
- package/nitrogen/generated/android/c++/JPermissionRequestResult.hpp +98 -0
- package/nitrogen/generated/android/c++/JPinSignIn.hpp +63 -0
- package/nitrogen/generated/android/c++/JQrSignIn.hpp +63 -0
- package/nitrogen/generated/android/c++/JSignInMethods.hpp +65 -0
- package/nitrogen/generated/android/c++/JSignInTemplateConfig.hpp +217 -0
- package/nitrogen/generated/android/c++/JTelemetry.hpp +25 -3
- package/nitrogen/generated/android/c++/JTextInputType.hpp +59 -0
- package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn.cpp +30 -0
- package/nitrogen/generated/android/c++/JVariant_QrSignIn_PinSignIn_InputSignIn.hpp +99 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AssetImage.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/AutoText.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/BooleanTelemetryItem.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/{Func_void_std__optional_Telemetry__std__optional_std__string_.kt → Func_void_std__optional_Telemetry_.kt} +14 -14
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Func_void_std__string.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GlyphImage.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/GridTemplateConfig.kt +8 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridAndroidAutoTelemetrySpec.kt +7 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/HybridSignInTemplateSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InformationTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/InputSignIn.kt +63 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/KeyboardType.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/ListTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MapTemplateConfig.kt +17 -17
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/MessageTemplateConfig.kt +11 -11
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NavigationAlertAction.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAction.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroAttributedString.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroBaseMapTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMapButton.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroMessageManeuver.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroNavigationAlert.kt +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRoutingManeuver.kt +12 -12
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroRow.kt +6 -6
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/NitroSection.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PermissionRequestResult.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/PinSignIn.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/QrSignIn.kt +41 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SafeAreaInsets.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SearchTemplateConfig.kt +9 -9
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInMethods.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInTemplateConfig.kt +78 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Telemetry.kt +23 -8
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TextInputType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/TravelEstimates.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/Variant_QrSignIn_PinSignIn_InputSignIn.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VehicleTelemetryItem.kt +3 -3
- package/nitrogen/generated/shared/c++/BooleanTelemetryItem.hpp +79 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.cpp +1 -0
- package/nitrogen/generated/shared/c++/HybridAndroidAutoTelemetrySpec.hpp +7 -1
- package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridSignInTemplateSpec.hpp +66 -0
- package/nitrogen/generated/shared/c++/InputSignIn.hpp +113 -0
- package/nitrogen/generated/shared/c++/KeyboardType.hpp +64 -0
- package/nitrogen/generated/shared/c++/PermissionRequestResult.hpp +80 -0
- package/nitrogen/generated/shared/c++/PinSignIn.hpp +81 -0
- package/nitrogen/generated/shared/c++/QrSignIn.hpp +81 -0
- package/nitrogen/generated/shared/c++/SignInMethods.hpp +64 -0
- package/nitrogen/generated/shared/c++/SignInTemplateConfig.hpp +138 -0
- package/nitrogen/generated/shared/c++/Telemetry.hpp +25 -2
- package/nitrogen/generated/shared/c++/TextInputType.hpp +62 -0
- package/package.json +4 -2
- package/src/hooks/useAndroidAutoTelemetry.ts +80 -27
- package/src/index.ts +2 -0
- package/src/specs/AndroidAutoTelemetry.nitro.ts +19 -1
- package/src/specs/SignInTemplate.nitro.ts +10 -0
- package/src/templates/SignInTemplate.ts +117 -0
- package/src/types/SignInMethod.ts +41 -0
- package/src/types/Telemetry.ts +29 -0
- package/lib/specs/VoiceInput.nitro.d.ts +0 -8
- package/nitrogen/generated/android/c++/JFunc_void_std__optional_Telemetry__std__optional_std__string_.hpp +0 -85
- /package/lib/specs/{VoiceInput.nitro.js → SignInTemplate.nitro.js} +0 -0
|
@@ -22,10 +22,10 @@ data class AutoText(
|
|
|
22
22
|
val text: String,
|
|
23
23
|
@DoNotStrip
|
|
24
24
|
@Keep
|
|
25
|
-
val distance: Distance
|
|
25
|
+
val distance: Distance? = null,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val duration: Double?
|
|
28
|
+
val duration: Double? = null
|
|
29
29
|
) {
|
|
30
30
|
/* primary constructor */
|
|
31
31
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// BooleanTelemetryItem.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.margelo.nitro.swe.iternio.reactnativeautoplay
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Represents the JavaScript object/struct "BooleanTelemetryItem".
|
|
16
|
+
*/
|
|
17
|
+
@DoNotStrip
|
|
18
|
+
@Keep
|
|
19
|
+
data class BooleanTelemetryItem(
|
|
20
|
+
@DoNotStrip
|
|
21
|
+
@Keep
|
|
22
|
+
val timestamp: Double,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val value: Boolean
|
|
26
|
+
) {
|
|
27
|
+
/* primary constructor */
|
|
28
|
+
|
|
29
|
+
private companion object {
|
|
30
|
+
/**
|
|
31
|
+
* Constructor called from C++
|
|
32
|
+
*/
|
|
33
|
+
@DoNotStrip
|
|
34
|
+
@Keep
|
|
35
|
+
@Suppress("unused")
|
|
36
|
+
@JvmStatic
|
|
37
|
+
private fun fromCpp(timestamp: Double, value: Boolean): BooleanTelemetryItem {
|
|
38
|
+
return BooleanTelemetryItem(timestamp, value)
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///
|
|
2
|
-
///
|
|
2
|
+
/// Func_void_std__optional_Telemetry_.kt
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
5
|
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
@@ -14,25 +14,25 @@ import dalvik.annotation.optimization.FastNative
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Represents the JavaScript callback `(tlm: optional
|
|
17
|
+
* Represents the JavaScript callback `(tlm: optional) => void`.
|
|
18
18
|
* This can be either implemented in C++ (in which case it might be a callback coming from JS),
|
|
19
19
|
* or in Kotlin/Java (in which case it is a native callback).
|
|
20
20
|
*/
|
|
21
21
|
@DoNotStrip
|
|
22
22
|
@Keep
|
|
23
23
|
@Suppress("ClassName", "RedundantUnitReturnType")
|
|
24
|
-
fun interface
|
|
24
|
+
fun interface Func_void_std__optional_Telemetry_: (Telemetry?) -> Unit {
|
|
25
25
|
/**
|
|
26
26
|
* Call the given JS callback.
|
|
27
27
|
* @throws Throwable if the JS function itself throws an error, or if the JS function/runtime has already been deleted.
|
|
28
28
|
*/
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
override fun invoke(tlm: Telemetry
|
|
31
|
+
override fun invoke(tlm: Telemetry?): Unit
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* Represents the JavaScript callback `(tlm: optional
|
|
35
|
+
* Represents the JavaScript callback `(tlm: optional) => void`.
|
|
36
36
|
* This is implemented in C++, via a `std::function<...>`.
|
|
37
37
|
* The callback might be coming from JS.
|
|
38
38
|
*/
|
|
@@ -43,7 +43,7 @@ fun interface Func_void_std__optional_Telemetry__std__optional_std__string_: (Te
|
|
|
43
43
|
"RedundantSuppression", "RedundantUnitReturnType", "FunctionName",
|
|
44
44
|
"ConvertSecondaryConstructorToPrimary", "ClassName", "LocalVariableName",
|
|
45
45
|
)
|
|
46
|
-
class
|
|
46
|
+
class Func_void_std__optional_Telemetry__cxx: Func_void_std__optional_Telemetry_ {
|
|
47
47
|
@DoNotStrip
|
|
48
48
|
@Keep
|
|
49
49
|
private val mHybridData: HybridData
|
|
@@ -56,25 +56,25 @@ class Func_void_std__optional_Telemetry__std__optional_std__string__cxx: Func_vo
|
|
|
56
56
|
|
|
57
57
|
@DoNotStrip
|
|
58
58
|
@Keep
|
|
59
|
-
override fun invoke(tlm: Telemetry
|
|
60
|
-
= invoke_cxx(tlm
|
|
59
|
+
override fun invoke(tlm: Telemetry?): Unit
|
|
60
|
+
= invoke_cxx(tlm)
|
|
61
61
|
|
|
62
62
|
@FastNative
|
|
63
|
-
private external fun invoke_cxx(tlm: Telemetry
|
|
63
|
+
private external fun invoke_cxx(tlm: Telemetry?): Unit
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
-
* Represents the JavaScript callback `(tlm: optional
|
|
68
|
-
* This is implemented in Java/Kotlin, via a `(Telemetry
|
|
67
|
+
* Represents the JavaScript callback `(tlm: optional) => void`.
|
|
68
|
+
* This is implemented in Java/Kotlin, via a `(Telemetry?) -> Unit`.
|
|
69
69
|
* The callback is always coming from native.
|
|
70
70
|
*/
|
|
71
71
|
@DoNotStrip
|
|
72
72
|
@Keep
|
|
73
73
|
@Suppress("ClassName", "RedundantUnitReturnType", "unused")
|
|
74
|
-
class
|
|
74
|
+
class Func_void_std__optional_Telemetry__java(private val function: (Telemetry?) -> Unit): Func_void_std__optional_Telemetry_ {
|
|
75
75
|
@DoNotStrip
|
|
76
76
|
@Keep
|
|
77
|
-
override fun invoke(tlm: Telemetry
|
|
78
|
-
return this.function(tlm
|
|
77
|
+
override fun invoke(tlm: Telemetry?): Unit {
|
|
78
|
+
return this.function(tlm)
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -14,7 +14,7 @@ import dalvik.annotation.optimization.FastNative
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Represents the JavaScript callback `(
|
|
17
|
+
* Represents the JavaScript callback `(text: string) => void`.
|
|
18
18
|
* This can be either implemented in C++ (in which case it might be a callback coming from JS),
|
|
19
19
|
* or in Kotlin/Java (in which case it is a native callback).
|
|
20
20
|
*/
|
|
@@ -28,11 +28,11 @@ fun interface Func_void_std__string: (String) -> Unit {
|
|
|
28
28
|
*/
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
override fun invoke(
|
|
31
|
+
override fun invoke(text: String): Unit
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* Represents the JavaScript callback `(
|
|
35
|
+
* Represents the JavaScript callback `(text: string) => void`.
|
|
36
36
|
* This is implemented in C++, via a `std::function<...>`.
|
|
37
37
|
* The callback might be coming from JS.
|
|
38
38
|
*/
|
|
@@ -56,15 +56,15 @@ class Func_void_std__string_cxx: Func_void_std__string {
|
|
|
56
56
|
|
|
57
57
|
@DoNotStrip
|
|
58
58
|
@Keep
|
|
59
|
-
override fun invoke(
|
|
60
|
-
= invoke_cxx(
|
|
59
|
+
override fun invoke(text: String): Unit
|
|
60
|
+
= invoke_cxx(text)
|
|
61
61
|
|
|
62
62
|
@FastNative
|
|
63
|
-
private external fun invoke_cxx(
|
|
63
|
+
private external fun invoke_cxx(text: String): Unit
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
/**
|
|
67
|
-
* Represents the JavaScript callback `(
|
|
67
|
+
* Represents the JavaScript callback `(text: string) => void`.
|
|
68
68
|
* This is implemented in Java/Kotlin, via a `(String) -> Unit`.
|
|
69
69
|
* The callback is always coming from native.
|
|
70
70
|
*/
|
|
@@ -74,7 +74,7 @@ class Func_void_std__string_cxx: Func_void_std__string {
|
|
|
74
74
|
class Func_void_std__string_java(private val function: (String) -> Unit): Func_void_std__string {
|
|
75
75
|
@DoNotStrip
|
|
76
76
|
@Keep
|
|
77
|
-
override fun invoke(
|
|
78
|
-
return this.function(
|
|
77
|
+
override fun invoke(text: String): Unit {
|
|
78
|
+
return this.function(text)
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -22,25 +22,25 @@ data class GridTemplateConfig(
|
|
|
22
22
|
val id: String,
|
|
23
23
|
@DoNotStrip
|
|
24
24
|
@Keep
|
|
25
|
-
val onWillAppear: Func_void_std__optional_bool_
|
|
25
|
+
val onWillAppear: Func_void_std__optional_bool_? = null,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val onWillDisappear: Func_void_std__optional_bool_
|
|
28
|
+
val onWillDisappear: Func_void_std__optional_bool_? = null,
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
val onDidAppear: Func_void_std__optional_bool_
|
|
31
|
+
val onDidAppear: Func_void_std__optional_bool_? = null,
|
|
32
32
|
@DoNotStrip
|
|
33
33
|
@Keep
|
|
34
|
-
val onDidDisappear: Func_void_std__optional_bool_
|
|
34
|
+
val onDidDisappear: Func_void_std__optional_bool_? = null,
|
|
35
35
|
@DoNotStrip
|
|
36
36
|
@Keep
|
|
37
|
-
val onPopped: Func_void
|
|
37
|
+
val onPopped: Func_void? = null,
|
|
38
38
|
@DoNotStrip
|
|
39
39
|
@Keep
|
|
40
|
-
val autoDismissMs: Double
|
|
40
|
+
val autoDismissMs: Double? = null,
|
|
41
41
|
@DoNotStrip
|
|
42
42
|
@Keep
|
|
43
|
-
val headerActions: Array<NitroAction
|
|
43
|
+
val headerActions: Array<NitroAction>? = null,
|
|
44
44
|
@DoNotStrip
|
|
45
45
|
@Keep
|
|
46
46
|
val title: AutoText,
|
|
@@ -49,7 +49,7 @@ data class GridTemplateConfig(
|
|
|
49
49
|
val buttons: Array<NitroGridButton>,
|
|
50
50
|
@DoNotStrip
|
|
51
51
|
@Keep
|
|
52
|
-
val mapConfig: NitroBaseMapTemplateConfig?
|
|
52
|
+
val mapConfig: NitroBaseMapTemplateConfig? = null
|
|
53
53
|
) {
|
|
54
54
|
/**
|
|
55
55
|
* Create a new instance of GridTemplateConfig from Kotlin
|
|
@@ -10,6 +10,7 @@ package com.margelo.nitro.swe.iternio.reactnativeautoplay
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.jni.HybridData
|
|
12
12
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
13
|
+
import com.margelo.nitro.core.Promise
|
|
13
14
|
import com.margelo.nitro.core.HybridObject
|
|
14
15
|
|
|
15
16
|
/**
|
|
@@ -45,14 +46,18 @@ abstract class HybridAndroidAutoTelemetrySpec: HybridObject() {
|
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
// Methods
|
|
48
|
-
abstract fun registerTelemetryListener(callback: (tlm: Telemetry
|
|
49
|
+
abstract fun registerTelemetryListener(callback: (tlm: Telemetry?) -> Unit): () -> Unit
|
|
49
50
|
|
|
50
51
|
@DoNotStrip
|
|
51
52
|
@Keep
|
|
52
|
-
private fun registerTelemetryListener_cxx(callback:
|
|
53
|
+
private fun registerTelemetryListener_cxx(callback: Func_void_std__optional_Telemetry_): Func_void {
|
|
53
54
|
val __result = registerTelemetryListener(callback)
|
|
54
55
|
return Func_void_java(__result)
|
|
55
56
|
}
|
|
57
|
+
|
|
58
|
+
@DoNotStrip
|
|
59
|
+
@Keep
|
|
60
|
+
abstract fun requestAutomotivePermissions(permissions: Array<String>, message: String, grantButtonText: String, cancelButtonText: String?): Promise<PermissionRequestResult>
|
|
56
61
|
|
|
57
62
|
private external fun initHybrid(): HybridData
|
|
58
63
|
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridSignInTemplateSpec.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.margelo.nitro.swe.iternio.reactnativeautoplay
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.jni.HybridData
|
|
12
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
13
|
+
import com.margelo.nitro.core.Promise
|
|
14
|
+
import com.margelo.nitro.core.HybridObject
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A Kotlin class representing the SignInTemplate HybridObject.
|
|
18
|
+
* Implement this abstract class to create Kotlin-based instances of SignInTemplate.
|
|
19
|
+
*/
|
|
20
|
+
@DoNotStrip
|
|
21
|
+
@Keep
|
|
22
|
+
@Suppress(
|
|
23
|
+
"KotlinJniMissingFunction", "unused",
|
|
24
|
+
"RedundantSuppression", "RedundantUnitReturnType", "SimpleRedundantLet",
|
|
25
|
+
"LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
|
|
26
|
+
)
|
|
27
|
+
abstract class HybridSignInTemplateSpec: HybridObject() {
|
|
28
|
+
@DoNotStrip
|
|
29
|
+
private var mHybridData: HybridData = initHybrid()
|
|
30
|
+
|
|
31
|
+
init {
|
|
32
|
+
super.updateNative(mHybridData)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
override fun updateNative(hybridData: HybridData) {
|
|
36
|
+
mHybridData = hybridData
|
|
37
|
+
super.updateNative(hybridData)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Default implementation of `HybridObject.toString()`
|
|
41
|
+
override fun toString(): String {
|
|
42
|
+
return "[HybridObject SignInTemplate]"
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Properties
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
// Methods
|
|
49
|
+
@DoNotStrip
|
|
50
|
+
@Keep
|
|
51
|
+
abstract fun createSignInTemplate(config: SignInTemplateConfig): Unit
|
|
52
|
+
|
|
53
|
+
@DoNotStrip
|
|
54
|
+
@Keep
|
|
55
|
+
abstract fun updateTemplate(templateId: String, config: SignInTemplateConfig): Promise<Unit>
|
|
56
|
+
|
|
57
|
+
private external fun initHybrid(): HybridData
|
|
58
|
+
|
|
59
|
+
companion object {
|
|
60
|
+
protected const val TAG = "HybridSignInTemplateSpec"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -22,25 +22,25 @@ data class InformationTemplateConfig(
|
|
|
22
22
|
val id: String,
|
|
23
23
|
@DoNotStrip
|
|
24
24
|
@Keep
|
|
25
|
-
val onWillAppear: Func_void_std__optional_bool_
|
|
25
|
+
val onWillAppear: Func_void_std__optional_bool_? = null,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val onWillDisappear: Func_void_std__optional_bool_
|
|
28
|
+
val onWillDisappear: Func_void_std__optional_bool_? = null,
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
val onDidAppear: Func_void_std__optional_bool_
|
|
31
|
+
val onDidAppear: Func_void_std__optional_bool_? = null,
|
|
32
32
|
@DoNotStrip
|
|
33
33
|
@Keep
|
|
34
|
-
val onDidDisappear: Func_void_std__optional_bool_
|
|
34
|
+
val onDidDisappear: Func_void_std__optional_bool_? = null,
|
|
35
35
|
@DoNotStrip
|
|
36
36
|
@Keep
|
|
37
|
-
val onPopped: Func_void
|
|
37
|
+
val onPopped: Func_void? = null,
|
|
38
38
|
@DoNotStrip
|
|
39
39
|
@Keep
|
|
40
|
-
val autoDismissMs: Double
|
|
40
|
+
val autoDismissMs: Double? = null,
|
|
41
41
|
@DoNotStrip
|
|
42
42
|
@Keep
|
|
43
|
-
val headerActions: Array<NitroAction
|
|
43
|
+
val headerActions: Array<NitroAction>? = null,
|
|
44
44
|
@DoNotStrip
|
|
45
45
|
@Keep
|
|
46
46
|
val title: AutoText,
|
|
@@ -49,10 +49,10 @@ data class InformationTemplateConfig(
|
|
|
49
49
|
val section: NitroSection,
|
|
50
50
|
@DoNotStrip
|
|
51
51
|
@Keep
|
|
52
|
-
val actions: Array<NitroAction
|
|
52
|
+
val actions: Array<NitroAction>? = null,
|
|
53
53
|
@DoNotStrip
|
|
54
54
|
@Keep
|
|
55
|
-
val mapConfig: NitroBaseMapTemplateConfig?
|
|
55
|
+
val mapConfig: NitroBaseMapTemplateConfig? = null
|
|
56
56
|
) {
|
|
57
57
|
/**
|
|
58
58
|
* Create a new instance of InformationTemplateConfig from Kotlin
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// InputSignIn.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.margelo.nitro.swe.iternio.reactnativeautoplay
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Represents the JavaScript object/struct "InputSignIn".
|
|
16
|
+
*/
|
|
17
|
+
@DoNotStrip
|
|
18
|
+
@Keep
|
|
19
|
+
data class InputSignIn(
|
|
20
|
+
@DoNotStrip
|
|
21
|
+
@Keep
|
|
22
|
+
val method: SignInMethods,
|
|
23
|
+
@DoNotStrip
|
|
24
|
+
@Keep
|
|
25
|
+
val keyboardType: KeyboardType? = null,
|
|
26
|
+
@DoNotStrip
|
|
27
|
+
@Keep
|
|
28
|
+
val hint: String? = null,
|
|
29
|
+
@DoNotStrip
|
|
30
|
+
@Keep
|
|
31
|
+
val defaultValue: String? = null,
|
|
32
|
+
@DoNotStrip
|
|
33
|
+
@Keep
|
|
34
|
+
val errorMessage: String? = null,
|
|
35
|
+
@DoNotStrip
|
|
36
|
+
@Keep
|
|
37
|
+
val callback: Func_void_std__string,
|
|
38
|
+
@DoNotStrip
|
|
39
|
+
@Keep
|
|
40
|
+
val showKeyboardByDefault: Boolean? = null,
|
|
41
|
+
@DoNotStrip
|
|
42
|
+
@Keep
|
|
43
|
+
val inputType: TextInputType
|
|
44
|
+
) {
|
|
45
|
+
/**
|
|
46
|
+
* Create a new instance of InputSignIn from Kotlin
|
|
47
|
+
*/
|
|
48
|
+
constructor(method: SignInMethods, keyboardType: KeyboardType?, hint: String?, defaultValue: String?, errorMessage: String?, callback: (text: String) -> Unit, showKeyboardByDefault: Boolean?, inputType: TextInputType):
|
|
49
|
+
this(method, keyboardType, hint, defaultValue, errorMessage, Func_void_std__string_java(callback), showKeyboardByDefault, inputType)
|
|
50
|
+
|
|
51
|
+
private companion object {
|
|
52
|
+
/**
|
|
53
|
+
* Constructor called from C++
|
|
54
|
+
*/
|
|
55
|
+
@DoNotStrip
|
|
56
|
+
@Keep
|
|
57
|
+
@Suppress("unused")
|
|
58
|
+
@JvmStatic
|
|
59
|
+
private fun fromCpp(method: SignInMethods, keyboardType: KeyboardType?, hint: String?, defaultValue: String?, errorMessage: String?, callback: Func_void_std__string, showKeyboardByDefault: Boolean?, inputType: TextInputType): InputSignIn {
|
|
60
|
+
return InputSignIn(method, keyboardType, hint, defaultValue, errorMessage, callback, showKeyboardByDefault, inputType)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// KeyboardType.kt
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
package com.margelo.nitro.swe.iternio.reactnativeautoplay
|
|
9
|
+
|
|
10
|
+
import androidx.annotation.Keep
|
|
11
|
+
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents the JavaScript enum/union "KeyboardType".
|
|
15
|
+
*/
|
|
16
|
+
@DoNotStrip
|
|
17
|
+
@Keep
|
|
18
|
+
enum class KeyboardType(@DoNotStrip @Keep val value: Int) {
|
|
19
|
+
DEFAULT(0),
|
|
20
|
+
EMAIL(1),
|
|
21
|
+
PHONE(2),
|
|
22
|
+
NUMBER(3);
|
|
23
|
+
}
|
|
@@ -22,34 +22,34 @@ data class ListTemplateConfig(
|
|
|
22
22
|
val id: String,
|
|
23
23
|
@DoNotStrip
|
|
24
24
|
@Keep
|
|
25
|
-
val onWillAppear: Func_void_std__optional_bool_
|
|
25
|
+
val onWillAppear: Func_void_std__optional_bool_? = null,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val onWillDisappear: Func_void_std__optional_bool_
|
|
28
|
+
val onWillDisappear: Func_void_std__optional_bool_? = null,
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
val onDidAppear: Func_void_std__optional_bool_
|
|
31
|
+
val onDidAppear: Func_void_std__optional_bool_? = null,
|
|
32
32
|
@DoNotStrip
|
|
33
33
|
@Keep
|
|
34
|
-
val onDidDisappear: Func_void_std__optional_bool_
|
|
34
|
+
val onDidDisappear: Func_void_std__optional_bool_? = null,
|
|
35
35
|
@DoNotStrip
|
|
36
36
|
@Keep
|
|
37
|
-
val onPopped: Func_void
|
|
37
|
+
val onPopped: Func_void? = null,
|
|
38
38
|
@DoNotStrip
|
|
39
39
|
@Keep
|
|
40
|
-
val autoDismissMs: Double
|
|
40
|
+
val autoDismissMs: Double? = null,
|
|
41
41
|
@DoNotStrip
|
|
42
42
|
@Keep
|
|
43
|
-
val headerActions: Array<NitroAction
|
|
43
|
+
val headerActions: Array<NitroAction>? = null,
|
|
44
44
|
@DoNotStrip
|
|
45
45
|
@Keep
|
|
46
46
|
val title: AutoText,
|
|
47
47
|
@DoNotStrip
|
|
48
48
|
@Keep
|
|
49
|
-
val sections: Array<NitroSection
|
|
49
|
+
val sections: Array<NitroSection>? = null,
|
|
50
50
|
@DoNotStrip
|
|
51
51
|
@Keep
|
|
52
|
-
val mapConfig: NitroBaseMapTemplateConfig?
|
|
52
|
+
val mapConfig: NitroBaseMapTemplateConfig? = null
|
|
53
53
|
) {
|
|
54
54
|
/**
|
|
55
55
|
* Create a new instance of ListTemplateConfig from Kotlin
|
|
@@ -22,58 +22,58 @@ data class MapTemplateConfig(
|
|
|
22
22
|
val id: String,
|
|
23
23
|
@DoNotStrip
|
|
24
24
|
@Keep
|
|
25
|
-
val onWillAppear: Func_void_std__optional_bool_
|
|
25
|
+
val onWillAppear: Func_void_std__optional_bool_? = null,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val onWillDisappear: Func_void_std__optional_bool_
|
|
28
|
+
val onWillDisappear: Func_void_std__optional_bool_? = null,
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
val onDidAppear: Func_void_std__optional_bool_
|
|
31
|
+
val onDidAppear: Func_void_std__optional_bool_? = null,
|
|
32
32
|
@DoNotStrip
|
|
33
33
|
@Keep
|
|
34
|
-
val onDidDisappear: Func_void_std__optional_bool_
|
|
34
|
+
val onDidDisappear: Func_void_std__optional_bool_? = null,
|
|
35
35
|
@DoNotStrip
|
|
36
36
|
@Keep
|
|
37
|
-
val onPopped: Func_void
|
|
37
|
+
val onPopped: Func_void? = null,
|
|
38
38
|
@DoNotStrip
|
|
39
39
|
@Keep
|
|
40
|
-
val autoDismissMs: Double
|
|
40
|
+
val autoDismissMs: Double? = null,
|
|
41
41
|
@DoNotStrip
|
|
42
42
|
@Keep
|
|
43
|
-
val visibleTravelEstimate: VisibleTravelEstimate
|
|
43
|
+
val visibleTravelEstimate: VisibleTravelEstimate? = null,
|
|
44
44
|
@DoNotStrip
|
|
45
45
|
@Keep
|
|
46
|
-
val onDidPan: Func_void_Point_std__optional_Point_
|
|
46
|
+
val onDidPan: Func_void_Point_std__optional_Point_? = null,
|
|
47
47
|
@DoNotStrip
|
|
48
48
|
@Keep
|
|
49
|
-
val onDidUpdateZoomGestureWithCenter: Func_void_Point_double
|
|
49
|
+
val onDidUpdateZoomGestureWithCenter: Func_void_Point_double? = null,
|
|
50
50
|
@DoNotStrip
|
|
51
51
|
@Keep
|
|
52
|
-
val onClick: Func_void_Point
|
|
52
|
+
val onClick: Func_void_Point? = null,
|
|
53
53
|
@DoNotStrip
|
|
54
54
|
@Keep
|
|
55
|
-
val onDoubleClick: Func_void_Point
|
|
55
|
+
val onDoubleClick: Func_void_Point? = null,
|
|
56
56
|
@DoNotStrip
|
|
57
57
|
@Keep
|
|
58
|
-
val onAppearanceDidChange: Func_void_ColorScheme
|
|
58
|
+
val onAppearanceDidChange: Func_void_ColorScheme? = null,
|
|
59
59
|
@DoNotStrip
|
|
60
60
|
@Keep
|
|
61
61
|
val onStopNavigation: Func_void,
|
|
62
62
|
@DoNotStrip
|
|
63
63
|
@Keep
|
|
64
|
-
val onAutoDriveEnabled: Func_void
|
|
64
|
+
val onAutoDriveEnabled: Func_void? = null,
|
|
65
65
|
@DoNotStrip
|
|
66
66
|
@Keep
|
|
67
|
-
val mapButtons: Array<NitroMapButton
|
|
67
|
+
val mapButtons: Array<NitroMapButton>? = null,
|
|
68
68
|
@DoNotStrip
|
|
69
69
|
@Keep
|
|
70
|
-
val headerActions: Array<NitroAction
|
|
70
|
+
val headerActions: Array<NitroAction>? = null,
|
|
71
71
|
@DoNotStrip
|
|
72
72
|
@Keep
|
|
73
|
-
val panButtonScrollPercentage: Double
|
|
73
|
+
val panButtonScrollPercentage: Double? = null,
|
|
74
74
|
@DoNotStrip
|
|
75
75
|
@Keep
|
|
76
|
-
val onDidChangePanningInterface: Func_void_bool?
|
|
76
|
+
val onDidChangePanningInterface: Func_void_bool? = null
|
|
77
77
|
) {
|
|
78
78
|
/**
|
|
79
79
|
* Create a new instance of MapTemplateConfig from Kotlin
|
|
@@ -22,40 +22,40 @@ data class MessageTemplateConfig(
|
|
|
22
22
|
val id: String,
|
|
23
23
|
@DoNotStrip
|
|
24
24
|
@Keep
|
|
25
|
-
val onWillAppear: Func_void_std__optional_bool_
|
|
25
|
+
val onWillAppear: Func_void_std__optional_bool_? = null,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val onWillDisappear: Func_void_std__optional_bool_
|
|
28
|
+
val onWillDisappear: Func_void_std__optional_bool_? = null,
|
|
29
29
|
@DoNotStrip
|
|
30
30
|
@Keep
|
|
31
|
-
val onDidAppear: Func_void_std__optional_bool_
|
|
31
|
+
val onDidAppear: Func_void_std__optional_bool_? = null,
|
|
32
32
|
@DoNotStrip
|
|
33
33
|
@Keep
|
|
34
|
-
val onDidDisappear: Func_void_std__optional_bool_
|
|
34
|
+
val onDidDisappear: Func_void_std__optional_bool_? = null,
|
|
35
35
|
@DoNotStrip
|
|
36
36
|
@Keep
|
|
37
|
-
val onPopped: Func_void
|
|
37
|
+
val onPopped: Func_void? = null,
|
|
38
38
|
@DoNotStrip
|
|
39
39
|
@Keep
|
|
40
|
-
val autoDismissMs: Double
|
|
40
|
+
val autoDismissMs: Double? = null,
|
|
41
41
|
@DoNotStrip
|
|
42
42
|
@Keep
|
|
43
|
-
val headerActions: Array<NitroAction
|
|
43
|
+
val headerActions: Array<NitroAction>? = null,
|
|
44
44
|
@DoNotStrip
|
|
45
45
|
@Keep
|
|
46
|
-
val title: AutoText
|
|
46
|
+
val title: AutoText? = null,
|
|
47
47
|
@DoNotStrip
|
|
48
48
|
@Keep
|
|
49
49
|
val message: AutoText,
|
|
50
50
|
@DoNotStrip
|
|
51
51
|
@Keep
|
|
52
|
-
val actions: Array<NitroAction
|
|
52
|
+
val actions: Array<NitroAction>? = null,
|
|
53
53
|
@DoNotStrip
|
|
54
54
|
@Keep
|
|
55
|
-
val image: Variant_GlyphImage_AssetImage
|
|
55
|
+
val image: Variant_GlyphImage_AssetImage? = null,
|
|
56
56
|
@DoNotStrip
|
|
57
57
|
@Keep
|
|
58
|
-
val mapConfig: NitroBaseMapTemplateConfig?
|
|
58
|
+
val mapConfig: NitroBaseMapTemplateConfig? = null
|
|
59
59
|
) {
|
|
60
60
|
/**
|
|
61
61
|
* Create a new instance of MessageTemplateConfig from Kotlin
|