Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import androidx.car.app.hardware.info.Mileage
import androidx.car.app.hardware.info.Model
import androidx.car.app.hardware.info.Speed
import androidx.car.app.versioning.CarAppApiLevels
import androidx.core.content.ContextCompat

object AndroidTelemetryObserver : TelemetryObserver() {
private var carContext: CarContext? = null
Expand Down Expand Up @@ -81,16 +80,14 @@ object AndroidTelemetryObserver : TelemetryObserver() {
throw UnsupportedOperationException("Telemetry not supported for this API level ${carContext.carAppApiLevel}")
}

val carHardwareExecutor = ContextCompat.getMainExecutor(carContext)

val carHardwareManager = carContext.getCarService(
CarHardwareManager::class.java
)
val carInfo = carHardwareManager.carInfo

// Request any single shot values.
try {
carInfo.fetchModel(carHardwareExecutor, mModelListener)
carInfo.fetchModel(telemetryExecutor, mModelListener)
} catch (_: SecurityException) {
} catch (_: NullPointerException) {
}
Expand All @@ -102,19 +99,19 @@ object AndroidTelemetryObserver : TelemetryObserver() {
}

try {
carInfo.addEnergyLevelListener(carHardwareExecutor, mEnergyLevelListener)
carInfo.addEnergyLevelListener(telemetryExecutor, mEnergyLevelListener)
} catch (_: SecurityException) {
} catch (_: NullPointerException) {
}

try {
carInfo.addSpeedListener(carHardwareExecutor, mSpeedListener)
carInfo.addSpeedListener(telemetryExecutor, mSpeedListener)
} catch (_: SecurityException) {
} catch (_: NullPointerException) {
}

try {
carInfo.addMileageListener(carHardwareExecutor, mMileageListener)
carInfo.addMileageListener(telemetryExecutor, mMileageListener)
} catch (_: SecurityException) {
} catch (_: NullPointerException) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ object AndroidTelemetryObserver : TelemetryObserver() {
// create new instance so we can access all props after permissions were granted
mCar?.disconnect()

val car = Car.createCar(NitroModules.applicationContext)
val car = Car.createCar(NitroModules.applicationContext, handler)
mCar = car

fetchStaticData(car)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.margelo.nitro.swe.iternio.reactnativeautoplay
import android.os.Handler
import android.os.HandlerThread
import java.util.concurrent.CopyOnWriteArrayList
import java.util.concurrent.Executor

abstract class TelemetryObserver {
abstract fun startTelemetryObserver(): Boolean
Expand All @@ -12,11 +13,16 @@ abstract class TelemetryObserver {
val telemetryHolder = AndroidAutoTelemetryHolder()
var isObserverRunning = false
val handler: Handler
val telemetryExecutor: Executor

init {
val thread = HandlerThread("AndroidTelemetryThread")
thread.start()
handler = Handler(thread.looper)

telemetryExecutor = Executor { command ->
handler.post(command)
}
}

fun addListener(callback: (Telemetry?) -> Unit): () -> Unit {
Expand Down
Loading