@iternio/react-native-auto-play 0.3.3 → 0.3.5
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/src/auto/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +1 -1
- package/android/src/automotive/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidTelemetryObserver.kt +1 -1
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/AndroidAutoTelemetryHolder.kt +15 -47
- package/android/src/main/java/com/margelo/nitro/swe/iternio/reactnativeautoplay/SignInWithGoogleActivity.kt +4 -1
- package/lib/types/Telemetry.d.ts +1 -0
- package/nitrogen/generated/android/c++/JVehicleTelemetryItem.hpp +7 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/swe/iternio/reactnativeautoplay/VehicleTelemetryItem.kt +6 -3
- package/nitrogen/generated/shared/c++/VehicleTelemetryItem.hpp +6 -2
- package/package.json +1 -1
- package/src/types/Telemetry.ts +1 -0
|
@@ -27,7 +27,7 @@ object AndroidTelemetryObserver : TelemetryObserver() {
|
|
|
27
27
|
model.year.value
|
|
28
28
|
} else null
|
|
29
29
|
|
|
30
|
-
telemetryHolder.updateVehicle(name, manufacturer, year)
|
|
30
|
+
telemetryHolder.updateVehicle(name, manufacturer, year, null)
|
|
31
31
|
|
|
32
32
|
telemetryHolder.toTelemetry()?.let {
|
|
33
33
|
telemetryCallbacks.forEach { callback ->
|
|
@@ -45,7 +45,7 @@ object AndroidTelemetryObserver : TelemetryObserver() {
|
|
|
45
45
|
VehiclePropertyIds.INFO_EV_BATTERY_CAPACITY, VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL
|
|
46
46
|
)?.value ?: 0f
|
|
47
47
|
|
|
48
|
-
telemetryHolder.updateVehicle(carModel, carManufacturer, carModelYear)
|
|
48
|
+
telemetryHolder.updateVehicle(carModel, carManufacturer, carModelYear, batteryCapacity)
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
val vehiclePropertyReceiver = object : CarPropertyManager.CarPropertyEventCallback {
|
|
@@ -42,110 +42,73 @@ class AndroidAutoTelemetryHolder {
|
|
|
42
42
|
private var name: String? = null
|
|
43
43
|
private var manufacturer: String? = null
|
|
44
44
|
private var year: Int? = null
|
|
45
|
+
private var batteryCapacity: Float? = null
|
|
45
46
|
|
|
46
|
-
fun updateVehicle(name: String?, manufacturer: String?, year: Int?) =
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
47
|
+
fun updateVehicle(name: String?, manufacturer: String?, year: Int?, batteryCapacity: Float?) =
|
|
48
|
+
synchronized(lock) {
|
|
49
|
+
this.name = name
|
|
50
|
+
this.manufacturer = manufacturer
|
|
51
|
+
this.year = year
|
|
52
|
+
this.batteryCapacity = batteryCapacity
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
if (batteryLevel == value) {
|
|
56
|
-
return
|
|
54
|
+
isDirty = true
|
|
57
55
|
}
|
|
58
56
|
|
|
57
|
+
fun updateBatteryLevel(value: Float) = synchronized(lock) {
|
|
59
58
|
batteryLevel = value
|
|
60
59
|
batteryLevelTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
61
60
|
isDirty = true
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
fun updateFuelLevel(value: Float) = synchronized(lock) {
|
|
65
|
-
if (fuelLevel == value) {
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
|
|
69
64
|
fuelLevel = value
|
|
70
65
|
fuelLevelTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
71
66
|
isDirty = true
|
|
72
67
|
}
|
|
73
68
|
|
|
74
69
|
fun updateRange(value: Float) = synchronized(lock) {
|
|
75
|
-
if (range == value) {
|
|
76
|
-
return
|
|
77
|
-
}
|
|
78
|
-
|
|
79
70
|
range = value
|
|
80
71
|
rangeTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
81
72
|
isDirty = true
|
|
82
73
|
}
|
|
83
74
|
|
|
84
75
|
fun updateSpeed(value: Float?) = synchronized(lock) {
|
|
85
|
-
if (speed == value) {
|
|
86
|
-
return
|
|
87
|
-
}
|
|
88
|
-
|
|
89
76
|
speed = value
|
|
90
77
|
speedTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
91
78
|
isDirty = true
|
|
92
79
|
}
|
|
93
80
|
|
|
94
81
|
fun updateOdometer(value: Float?) = synchronized(lock) {
|
|
95
|
-
if (odometer == value) {
|
|
96
|
-
return
|
|
97
|
-
}
|
|
98
|
-
|
|
99
82
|
odometer = value
|
|
100
83
|
odometerTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
101
84
|
isDirty = true
|
|
102
85
|
}
|
|
103
86
|
|
|
104
87
|
fun updateSelectedGear(value: Int?) = synchronized(lock) {
|
|
105
|
-
if (value == selectedGear) {
|
|
106
|
-
return
|
|
107
|
-
}
|
|
108
|
-
|
|
109
88
|
selectedGear = value
|
|
110
89
|
selectedGearTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
111
90
|
isDirty = true
|
|
112
91
|
}
|
|
113
92
|
|
|
114
93
|
fun updateEnvOutsideTemperature(value: Float?) = synchronized(lock) {
|
|
115
|
-
if (value == envOutsideTemperature) {
|
|
116
|
-
return
|
|
117
|
-
}
|
|
118
|
-
|
|
119
94
|
envOutsideTemperature = value
|
|
120
95
|
envOutsideTemperatureTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
121
96
|
isDirty = true
|
|
122
97
|
}
|
|
123
98
|
|
|
124
99
|
fun updateEvChargePortConnected(value: Boolean?) = synchronized(lock) {
|
|
125
|
-
if (value == evChargePortConnected) {
|
|
126
|
-
return
|
|
127
|
-
}
|
|
128
|
-
|
|
129
100
|
evChargePortConnected = value
|
|
130
101
|
evChargePortConnectedTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
131
102
|
isDirty = true
|
|
132
103
|
}
|
|
133
104
|
|
|
134
105
|
fun updateEvBatteryInstantaneousChargeRate(value: Float?) = synchronized(lock) {
|
|
135
|
-
if (value == evBatteryInstantaneousChargeRate) {
|
|
136
|
-
return
|
|
137
|
-
}
|
|
138
|
-
|
|
139
106
|
evBatteryInstantaneousChargeRate = value
|
|
140
107
|
evBatteryInstantaneousChargeRateTimeStamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
141
108
|
isDirty = true
|
|
142
109
|
}
|
|
143
110
|
|
|
144
111
|
fun updateParkingBrakeOn(value: Boolean?) = synchronized(lock) {
|
|
145
|
-
if (value == parkingBrakeOn) {
|
|
146
|
-
return
|
|
147
|
-
}
|
|
148
|
-
|
|
149
112
|
parkingBrakeOn = value
|
|
150
113
|
parkingBrakeOnTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
151
114
|
isDirty = true
|
|
@@ -153,6 +116,10 @@ class AndroidAutoTelemetryHolder {
|
|
|
153
116
|
|
|
154
117
|
fun updateBatteryLevel(levelWh: Float, capacityWh: Float) = synchronized(lock) {
|
|
155
118
|
if (soe == levelWh) {
|
|
119
|
+
soeTimestamp = (System.currentTimeMillis() / 1000L).toInt()
|
|
120
|
+
batteryLevelTimestamp = soeTimestamp
|
|
121
|
+
|
|
122
|
+
isDirty = true
|
|
156
123
|
return
|
|
157
124
|
}
|
|
158
125
|
|
|
@@ -208,7 +175,8 @@ class AndroidAutoTelemetryHolder {
|
|
|
208
175
|
vehicle = VehicleTelemetryItem(
|
|
209
176
|
name = createStringTelemetryItem(name),
|
|
210
177
|
manufacturer = createStringTelemetryItem(manufacturer),
|
|
211
|
-
year = createNumericTelemetryItem(year?.toFloat(), 0)
|
|
178
|
+
year = createNumericTelemetryItem(year?.toFloat(), 0),
|
|
179
|
+
batteryCapacity = createNumericTelemetryItem(batteryCapacity, 0)
|
|
212
180
|
)
|
|
213
181
|
)
|
|
214
182
|
}
|
|
@@ -34,7 +34,10 @@ class SignInWithGoogleActivity : ComponentActivity() {
|
|
|
34
34
|
val googleSignInClient = GoogleSignIn.getClient(
|
|
35
35
|
this,
|
|
36
36
|
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
|
|
37
|
-
.requestServerAuthCode(serverClientId)
|
|
37
|
+
.requestServerAuthCode(serverClientId)
|
|
38
|
+
.requestEmail()
|
|
39
|
+
.requestIdToken(serverClientId)
|
|
40
|
+
.build()
|
|
38
41
|
)
|
|
39
42
|
activityResultLauncher.launch(googleSignInClient.signInIntent)
|
|
40
43
|
}
|
package/lib/types/Telemetry.d.ts
CHANGED
|
@@ -42,10 +42,13 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
42
42
|
jni::local_ref<JNumericTelemetryItem> year = this->getFieldValue(fieldYear);
|
|
43
43
|
static const auto fieldManufacturer = clazz->getField<JStringTelemetryItem>("manufacturer");
|
|
44
44
|
jni::local_ref<JStringTelemetryItem> manufacturer = this->getFieldValue(fieldManufacturer);
|
|
45
|
+
static const auto fieldBatteryCapacity = clazz->getField<JNumericTelemetryItem>("batteryCapacity");
|
|
46
|
+
jni::local_ref<JNumericTelemetryItem> batteryCapacity = this->getFieldValue(fieldBatteryCapacity);
|
|
45
47
|
return VehicleTelemetryItem(
|
|
46
48
|
name != nullptr ? std::make_optional(name->toCpp()) : std::nullopt,
|
|
47
49
|
year != nullptr ? std::make_optional(year->toCpp()) : std::nullopt,
|
|
48
|
-
manufacturer != nullptr ? std::make_optional(manufacturer->toCpp()) : std::nullopt
|
|
50
|
+
manufacturer != nullptr ? std::make_optional(manufacturer->toCpp()) : std::nullopt,
|
|
51
|
+
batteryCapacity != nullptr ? std::make_optional(batteryCapacity->toCpp()) : std::nullopt
|
|
49
52
|
);
|
|
50
53
|
}
|
|
51
54
|
|
|
@@ -55,14 +58,15 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
55
58
|
*/
|
|
56
59
|
[[maybe_unused]]
|
|
57
60
|
static jni::local_ref<JVehicleTelemetryItem::javaobject> fromCpp(const VehicleTelemetryItem& value) {
|
|
58
|
-
using JSignature = JVehicleTelemetryItem(jni::alias_ref<JStringTelemetryItem>, jni::alias_ref<JNumericTelemetryItem>, jni::alias_ref<JStringTelemetryItem>);
|
|
61
|
+
using JSignature = JVehicleTelemetryItem(jni::alias_ref<JStringTelemetryItem>, jni::alias_ref<JNumericTelemetryItem>, jni::alias_ref<JStringTelemetryItem>, jni::alias_ref<JNumericTelemetryItem>);
|
|
59
62
|
static const auto clazz = javaClassStatic();
|
|
60
63
|
static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
|
|
61
64
|
return create(
|
|
62
65
|
clazz,
|
|
63
66
|
value.name.has_value() ? JStringTelemetryItem::fromCpp(value.name.value()) : nullptr,
|
|
64
67
|
value.year.has_value() ? JNumericTelemetryItem::fromCpp(value.year.value()) : nullptr,
|
|
65
|
-
value.manufacturer.has_value() ? JStringTelemetryItem::fromCpp(value.manufacturer.value()) : nullptr
|
|
68
|
+
value.manufacturer.has_value() ? JStringTelemetryItem::fromCpp(value.manufacturer.value()) : nullptr,
|
|
69
|
+
value.batteryCapacity.has_value() ? JNumericTelemetryItem::fromCpp(value.batteryCapacity.value()) : nullptr
|
|
66
70
|
);
|
|
67
71
|
}
|
|
68
72
|
};
|
|
@@ -25,7 +25,10 @@ data class VehicleTelemetryItem(
|
|
|
25
25
|
val year: NumericTelemetryItem?,
|
|
26
26
|
@DoNotStrip
|
|
27
27
|
@Keep
|
|
28
|
-
val manufacturer: StringTelemetryItem
|
|
28
|
+
val manufacturer: StringTelemetryItem?,
|
|
29
|
+
@DoNotStrip
|
|
30
|
+
@Keep
|
|
31
|
+
val batteryCapacity: NumericTelemetryItem?
|
|
29
32
|
) {
|
|
30
33
|
/* primary constructor */
|
|
31
34
|
|
|
@@ -37,8 +40,8 @@ data class VehicleTelemetryItem(
|
|
|
37
40
|
@Keep
|
|
38
41
|
@Suppress("unused")
|
|
39
42
|
@JvmStatic
|
|
40
|
-
private fun fromCpp(name: StringTelemetryItem?, year: NumericTelemetryItem?, manufacturer: StringTelemetryItem?): VehicleTelemetryItem {
|
|
41
|
-
return VehicleTelemetryItem(name, year, manufacturer)
|
|
43
|
+
private fun fromCpp(name: StringTelemetryItem?, year: NumericTelemetryItem?, manufacturer: StringTelemetryItem?, batteryCapacity: NumericTelemetryItem?): VehicleTelemetryItem {
|
|
44
|
+
return VehicleTelemetryItem(name, year, manufacturer, batteryCapacity)
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
}
|
|
@@ -47,10 +47,11 @@ namespace margelo::nitro::swe::iternio::reactnativeautoplay {
|
|
|
47
47
|
std::optional<StringTelemetryItem> name SWIFT_PRIVATE;
|
|
48
48
|
std::optional<NumericTelemetryItem> year SWIFT_PRIVATE;
|
|
49
49
|
std::optional<StringTelemetryItem> manufacturer SWIFT_PRIVATE;
|
|
50
|
+
std::optional<NumericTelemetryItem> batteryCapacity SWIFT_PRIVATE;
|
|
50
51
|
|
|
51
52
|
public:
|
|
52
53
|
VehicleTelemetryItem() = default;
|
|
53
|
-
explicit VehicleTelemetryItem(std::optional<StringTelemetryItem> name, std::optional<NumericTelemetryItem> year, std::optional<StringTelemetryItem> manufacturer): name(name), year(year), manufacturer(manufacturer) {}
|
|
54
|
+
explicit VehicleTelemetryItem(std::optional<StringTelemetryItem> name, std::optional<NumericTelemetryItem> year, std::optional<StringTelemetryItem> manufacturer, std::optional<NumericTelemetryItem> batteryCapacity): name(name), year(year), manufacturer(manufacturer), batteryCapacity(batteryCapacity) {}
|
|
54
55
|
|
|
55
56
|
public:
|
|
56
57
|
friend bool operator==(const VehicleTelemetryItem& lhs, const VehicleTelemetryItem& rhs) = default;
|
|
@@ -68,7 +69,8 @@ namespace margelo::nitro {
|
|
|
68
69
|
return margelo::nitro::swe::iternio::reactnativeautoplay::VehicleTelemetryItem(
|
|
69
70
|
JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "name"))),
|
|
70
71
|
JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::NumericTelemetryItem>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "year"))),
|
|
71
|
-
JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "manufacturer")))
|
|
72
|
+
JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "manufacturer"))),
|
|
73
|
+
JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::NumericTelemetryItem>>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "batteryCapacity")))
|
|
72
74
|
);
|
|
73
75
|
}
|
|
74
76
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::swe::iternio::reactnativeautoplay::VehicleTelemetryItem& arg) {
|
|
@@ -76,6 +78,7 @@ namespace margelo::nitro {
|
|
|
76
78
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "name"), JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::toJSI(runtime, arg.name));
|
|
77
79
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "year"), JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::NumericTelemetryItem>>::toJSI(runtime, arg.year));
|
|
78
80
|
obj.setProperty(runtime, PropNameIDCache::get(runtime, "manufacturer"), JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::toJSI(runtime, arg.manufacturer));
|
|
81
|
+
obj.setProperty(runtime, PropNameIDCache::get(runtime, "batteryCapacity"), JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::NumericTelemetryItem>>::toJSI(runtime, arg.batteryCapacity));
|
|
79
82
|
return obj;
|
|
80
83
|
}
|
|
81
84
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -89,6 +92,7 @@ namespace margelo::nitro {
|
|
|
89
92
|
if (!JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "name")))) return false;
|
|
90
93
|
if (!JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::NumericTelemetryItem>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "year")))) return false;
|
|
91
94
|
if (!JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::StringTelemetryItem>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "manufacturer")))) return false;
|
|
95
|
+
if (!JSIConverter<std::optional<margelo::nitro::swe::iternio::reactnativeautoplay::NumericTelemetryItem>>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "batteryCapacity")))) return false;
|
|
92
96
|
return true;
|
|
93
97
|
}
|
|
94
98
|
};
|
package/package.json
CHANGED