feat!: Application outline
This commit is contained in:
parent
80dfa6ab4e
commit
01fbf32042
9 changed files with 1440 additions and 190 deletions
app/src/main/java/eu/ztsh/garmin
|
@ -10,18 +10,20 @@ import android.content.pm.PackageManager
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.WindowManager
|
||||
import android.widget.Toast
|
||||
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.options.NavigationOptions
|
||||
import com.mapbox.navigation.core.MapboxNavigation
|
||||
import com.mapbox.navigation.core.lifecycle.MapboxNavigationApp
|
||||
import com.mapbox.navigation.core.lifecycle.MapboxNavigationObserver
|
||||
import com.mapbox.navigation.core.lifecycle.requireMapboxNavigation
|
||||
import eu.ztsh.garmin.databinding.ActivityMainBinding
|
||||
import eu.ztsh.garmin.mapbox.MapControl
|
||||
import eu.ztsh.garmin.mapbox.NavigationObserver
|
||||
import eu.ztsh.garmin.util.PermissionsHelper
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
|
@ -32,23 +34,23 @@ class MainActivity : AppCompatActivity() {
|
|||
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
private lateinit var mapControl: MapControl
|
||||
private lateinit var navigationObserver: NavigationObserver
|
||||
private lateinit var initThread: Thread
|
||||
val permissionsHelper = PermissionsHelper(WeakReference(this))
|
||||
|
||||
init {
|
||||
lifecycle.addObserver(object : DefaultLifecycleObserver {
|
||||
override fun onResume(owner: LifecycleOwner) {
|
||||
MapboxNavigationApp.attach(owner)
|
||||
MapboxNavigationApp.registerObserver(navigationObserver)
|
||||
private val permissionsHelper = PermissionsHelper(WeakReference(this))
|
||||
|
||||
val mapboxNavigation: MapboxNavigation by requireMapboxNavigation(
|
||||
onResumedObserver = object : DefaultLifecycleObserver, MapboxNavigationObserver {
|
||||
override fun onAttached(mapboxNavigation: MapboxNavigation) {
|
||||
mapControl.onAttached(mapboxNavigation)
|
||||
}
|
||||
|
||||
override fun onPause(owner: LifecycleOwner) {
|
||||
MapboxNavigationApp.detach(owner)
|
||||
MapboxNavigationApp.unregisterObserver(navigationObserver)
|
||||
override fun onDetached(mapboxNavigation: MapboxNavigation) {
|
||||
mapControl.onDetached(mapboxNavigation)
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
onInitialize = fun() {
|
||||
mapControl.initNavigation()
|
||||
}
|
||||
)
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -56,68 +58,24 @@ class MainActivity : AppCompatActivity() {
|
|||
setContentView(binding.root)
|
||||
binding.mapView
|
||||
permissionsHelper.checkPermissions {
|
||||
if (!MapboxNavigationApp.isSetup()) {
|
||||
MapboxNavigationApp.setup {
|
||||
NavigationOptions.Builder(applicationContext)
|
||||
// .accessToken(BuildConfig.MAPBOX_DOWNLOADS_TOKEN)
|
||||
.build()
|
||||
}
|
||||
}
|
||||
mapControl = MapControl(binding.mapView, resources)
|
||||
mapControl = MapControl(this, UI(binding), resources)
|
||||
mapControl.init()
|
||||
navigationObserver = NavigationObserver(mapControl)
|
||||
|
||||
MapboxNavigationApp.setup(
|
||||
NavigationOptions.Builder(applicationContext)
|
||||
.build()
|
||||
)
|
||||
}
|
||||
initThread = Thread {
|
||||
while (true) {
|
||||
if (MapboxNavigationApp.current() != null) {
|
||||
MapboxNavigationApp.current()!!.startTripSession()
|
||||
threadCallback()
|
||||
}
|
||||
Thread.sleep(100)
|
||||
}
|
||||
}
|
||||
initThread.start()
|
||||
bluetoothInit()
|
||||
}
|
||||
|
||||
private fun threadCallback() {
|
||||
initThread.join()
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
// MapboxNavigationApp.current()?.registerRouteProgressObserver(routeProgressObserver)
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
// MapboxNavigationApp.current()?.unregisterRouteProgressObserver(routeProgressObserver)
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
MapboxNavigationApp.current()?.stopTripSession()
|
||||
// maneuverApi.cancel()
|
||||
mapControl.onDestroy()
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
}
|
||||
|
||||
// // 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