feat: add nodelist sort options

This commit is contained in:
andrekir 2024-05-27 09:56:26 -03:00 committed by Andre K
parent f84a75569d
commit 4ceb4c5199
17 changed files with 368 additions and 89 deletions

View file

@ -1,4 +1,4 @@
package com.geeksville.mesh.ui.map.components
package com.geeksville.mesh.ui.map
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@ -23,7 +23,7 @@ import androidx.compose.ui.unit.dp
import com.geeksville.mesh.R
@Composable
fun CacheLayout(
internal fun CacheLayout(
cacheEstimate: String,
onExecuteJob: () -> Unit,
onCancelDownload: () -> Unit,

View file

@ -1,4 +1,4 @@
package com.geeksville.mesh.ui.map.components
package com.geeksville.mesh.ui.map
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.core.FastOutSlowInEasing
@ -16,7 +16,7 @@ import androidx.compose.ui.res.stringResource
import com.geeksville.mesh.R
@Composable
fun DownloadButton(
internal fun DownloadButton(
enabled: Boolean,
onClick: () -> Unit,
) {

View file

@ -1,4 +1,4 @@
package com.geeksville.mesh.ui.map.components
package com.geeksville.mesh.ui.map
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
@ -42,7 +42,7 @@ import com.geeksville.mesh.util.CustomRecentEmojiProvider
import com.geeksville.mesh.waypoint
@Composable
fun EditWaypointDialog(
internal fun EditWaypointDialog(
waypoint: Waypoint,
onSendClicked: (Waypoint) -> Unit,
onDeleteClicked: (Waypoint) -> Unit,

View file

@ -50,19 +50,14 @@ import com.geeksville.mesh.database.entity.Packet
import com.geeksville.mesh.model.UIViewModel
import com.geeksville.mesh.model.map.CustomTileSource
import com.geeksville.mesh.model.map.MarkerWithLabel
import com.geeksville.mesh.ui.MessagesFragment
import com.geeksville.mesh.ui.ScreenFragment
import com.geeksville.mesh.ui.map.components.CacheLayout
import com.geeksville.mesh.ui.map.components.DownloadButton
import com.geeksville.mesh.ui.map.components.EditWaypointDialog
import com.geeksville.mesh.ui.components.IconButton
import com.geeksville.mesh.ui.map.components.rememberMapViewWithLifecycle
import com.geeksville.mesh.ui.theme.AppTheme
import com.geeksville.mesh.util.SqlTileWriterExt
import com.geeksville.mesh.util.requiredZoomLevel
import com.geeksville.mesh.util.formatAgo
import com.geeksville.mesh.util.zoomIn
import com.geeksville.mesh.waypoint
import com.google.accompanist.themeadapter.appcompat.AppCompatTheme
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import dagger.hilt.android.AndroidEntryPoint
import org.osmdroid.bonuspack.utils.BonusPackHelper.getBitmapFromVectorDrawable
@ -90,7 +85,6 @@ import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay
import java.io.File
import java.text.DateFormat
@AndroidEntryPoint
class MapFragment : ScreenFragment("Map Fragment"), Logging {
@ -104,7 +98,7 @@ class MapFragment : ScreenFragment("Map Fragment"), Logging {
return ComposeView(requireContext()).apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent {
AppCompatTheme {
AppTheme {
MapView(model)
}
}
@ -192,7 +186,7 @@ fun MapView(
requestPermissionAndToggleLauncher.launch(context.getLocationPermissions())
}
val nodes by model.nodeDB.nodes.collectAsStateWithLifecycle()
val nodes by model.filteredNodes.collectAsStateWithLifecycle(emptyList())
val waypoints by model.waypoints.observeAsState(emptyMap())
var showDownloadButton: Boolean by remember { mutableStateOf(false) }
@ -462,7 +456,7 @@ fun MapView(
}
with(map) {
UpdateMarkers(onNodesChanged(nodes.values), onWaypointChanged(waypoints.values))
UpdateMarkers(onNodesChanged(nodes), onWaypointChanged(waypoints.values))
}
// private fun addWeatherLayer() {
@ -482,7 +476,7 @@ fun MapView(
// }
fun MapView.zoomToNodes() {
val nodeMarkers = onNodesChanged(nodes.values)
val nodeMarkers = onNodesChanged(nodes)
if (nodeMarkers.isNotEmpty()) {
val box = BoundingBox.fromGeoPoints(nodeMarkers.map { it.position })
val center = GeoPoint(box.centerLatitude, box.centerLongitude)

View file

@ -1,4 +1,4 @@
package com.geeksville.mesh.ui.map.components
package com.geeksville.mesh.ui.map
import android.annotation.SuppressLint
import android.content.Context
@ -32,7 +32,7 @@ private fun PowerManager.WakeLock.safeRelease() {
}
@Composable
fun rememberMapViewWithLifecycle(context: Context): MapView {
internal fun rememberMapViewWithLifecycle(context: Context): MapView {
val mapView = remember {
MapView(context).apply {
clipToOutline = true