@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.
@@ -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?) = synchronized(lock) {
47
- this.name = name
48
- this.manufacturer = manufacturer
49
- this.year = year
50
-
51
- isDirty = true
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
- fun updateBatteryLevel(value: Float) = synchronized(lock) {
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).requestEmail().build()
37
+ .requestServerAuthCode(serverClientId)
38
+ .requestEmail()
39
+ .requestIdToken(serverClientId)
40
+ .build()
38
41
  )
39
42
  activityResultLauncher.launch(googleSignInClient.signInIntent)
40
43
  }
@@ -41,6 +41,7 @@ type VehicleTelemetryItem = {
41
41
  name?: StringTelemetryItem;
42
42
  year?: NumericTelemetryItem;
43
43
  manufacturer?: StringTelemetryItem;
44
+ batteryCapacity?: NumericTelemetryItem;
44
45
  };
45
46
  export declare enum VehicleGear {
46
47
  Neutral = 1,
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iternio/react-native-auto-play",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "Android Auto and Apple CarPlay for react-native",
5
5
  "main": "lib/index",
6
6
  "module": "lib/index",
@@ -49,6 +49,7 @@ type VehicleTelemetryItem = {
49
49
  name?: StringTelemetryItem;
50
50
  year?: NumericTelemetryItem;
51
51
  manufacturer?: StringTelemetryItem;
52
+ batteryCapacity?: NumericTelemetryItem;
52
53
  };
53
54
 
54
55
  export enum VehicleGear {