mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
Add InlineMap implementation for F-Droid build (#4877)
This commit is contained in:
parent
d5d4aa4577
commit
ee146df334
1 changed files with 39 additions and 1 deletions
|
|
@ -16,11 +16,49 @@
|
|||
*/
|
||||
package org.meshtastic.app.node.component
|
||||
|
||||
import android.view.ViewGroup
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.viewinterop.AndroidView
|
||||
import org.meshtastic.core.model.Node
|
||||
import org.osmdroid.tileprovider.tilesource.TileSourceFactory
|
||||
import org.osmdroid.util.GeoPoint
|
||||
import org.osmdroid.views.MapView
|
||||
import org.osmdroid.views.overlay.Marker
|
||||
|
||||
@Composable
|
||||
fun InlineMap(node: Node, modifier: Modifier = Modifier) {
|
||||
// No-op for F-Droid builds
|
||||
val context = androidx.compose.ui.platform.LocalContext.current
|
||||
|
||||
val map = remember {
|
||||
MapView(context).apply {
|
||||
layoutParams =
|
||||
ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
|
||||
|
||||
// Default osmdroid tile source.
|
||||
setTileSource(TileSourceFactory.MAPNIK)
|
||||
setMultiTouchControls(false)
|
||||
|
||||
controller.setZoom(15.0)
|
||||
}
|
||||
}
|
||||
|
||||
LaunchedEffect(node.num) {
|
||||
val point = GeoPoint(node.latitude, node.longitude)
|
||||
|
||||
map.overlays.clear()
|
||||
|
||||
val marker =
|
||||
Marker(map).apply {
|
||||
position = point
|
||||
setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM)
|
||||
}
|
||||
map.overlays.add(marker)
|
||||
|
||||
map.controller.animateTo(point)
|
||||
}
|
||||
|
||||
AndroidView(factory = { map }, modifier = modifier)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue