WIP: WIP
This commit is contained in:
parent
49559993d8
commit
0a00d13706
6 changed files with 328 additions and 15 deletions
|
@ -14,6 +14,15 @@ import androidx.activity.result.ActivityResultCallback
|
|||
import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.lifecycle.DefaultLifecycleObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.mapbox.navigation.base.formatter.DistanceFormatterOptions
|
||||
import com.mapbox.navigation.base.options.NavigationOptions
|
||||
import com.mapbox.navigation.base.trip.model.RouteProgress
|
||||
import com.mapbox.navigation.core.formatter.MapboxDistanceFormatter
|
||||
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
|
||||
import com.mapbox.navigation.core.trip.session.RouteProgressObserver
|
||||
import com.mapbox.navigation.ui.maneuver.api.MapboxManeuverApi
|
||||
import eu.ztsh.garmin.databinding.ActivityMainBinding
|
||||
|
||||
@SuppressLint("MissingPermission")
|
||||
|
@ -21,15 +30,66 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
lateinit var garmin: Garmin
|
||||
|
||||
private lateinit var binding : ActivityMainBinding
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
private val mapboxObserver = MapboxObserver()
|
||||
|
||||
init {
|
||||
lifecycle.addObserver(object : DefaultLifecycleObserver {
|
||||
override fun onResume(owner: LifecycleOwner) {
|
||||
MapboxNavigationApp.attach(owner)
|
||||
MapboxNavigationApp.registerObserver(mapboxObserver)
|
||||
}
|
||||
|
||||
override fun onPause(owner: LifecycleOwner) {
|
||||
MapboxNavigationApp.detach(owner)
|
||||
MapboxNavigationApp.unregisterObserver(mapboxObserver)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
// bluetoothInit()
|
||||
if (!MapboxNavigationApp.isSetup()) {
|
||||
MapboxNavigationApp.setup {
|
||||
NavigationOptions.Builder(applicationContext)
|
||||
.accessToken(BuildConfig.MAPBOX_DOWNLOADS_TOKEN)
|
||||
.build()
|
||||
}
|
||||
}
|
||||
MapboxNavigationApp.current()?.startTripSession()
|
||||
bluetoothInit()
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
MapboxNavigationApp.current()?.registerRouteProgressObserver(routeProgressObserver)
|
||||
}
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
MapboxNavigationApp.current()?.unregisterRouteProgressObserver(routeProgressObserver)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
MapboxNavigationApp.current()?.stopTripSession()
|
||||
maneuverApi.cancel()
|
||||
}
|
||||
|
||||
|
||||
// Define distance formatter options
|
||||
private val distanceFormatter: DistanceFormatterOptions by lazy {
|
||||
DistanceFormatterOptions.Builder(this).build()
|
||||
}
|
||||
// Create an instance of the Maneuver API
|
||||
private val maneuverApi: MapboxManeuverApi by lazy {
|
||||
MapboxManeuverApi(MapboxDistanceFormatter(distanceFormatter))
|
||||
}
|
||||
|
||||
private val routeProgressObserver =
|
||||
RouteProgressObserver { routeProgress -> maneuverApi.getManeuvers(routeProgress).value?.apply { garmin.process(this[0]) } }
|
||||
|
||||
private fun bluetoothInit() {
|
||||
val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java)
|
||||
val bluetoothAdapter: BluetoothAdapter = bluetoothManager.adapter
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue