Skip to content

Commit

Permalink
add centerMapAt
Browse files Browse the repository at this point in the history
  • Loading branch information
powersjcb committed Sep 8, 2024
1 parent 2788cae commit 089022d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 9 deletions.
34 changes: 32 additions & 2 deletions Meshtastic/Views/Nodes/MeshMap.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ struct MeshMap: View {
@Namespace var mapScope
@State var mapStyle: MapStyle = MapStyle.standard(elevation: .flat, emphasis: MapStyle.StandardEmphasis.muted, pointsOfInterest: .excludingAll, showsTraffic: false)
@State var position = MapCameraPosition.automatic
@State private var distance = 10000.0
@State private var editingSettings = false
@State private var editingFilters = false
@State var selectedPosition: PositionEntity?
Expand Down Expand Up @@ -60,8 +61,19 @@ struct MeshMap: View {
NavigationStack {
ZStack {
MapReader { reader in
Map(position: $position, bounds: MapCameraBounds(minimumDistance: 1, maximumDistance: .infinity), scope: mapScope) {
MeshMapContent(showUserLocation: $showUserLocation, showTraffic: $showTraffic, showPointsOfInterest: $showPointsOfInterest, selectedMapLayer: $selectedMapLayer, selectedPosition: $selectedPosition, selectedWaypoint: $selectedWaypoint)
Map(
position: $position,
bounds: MapCameraBounds(minimumDistance: 1, maximumDistance: .infinity),
scope: mapScope
) {
MeshMapContent(
showUserLocation: $showUserLocation,
showTraffic: $showTraffic,
showPointsOfInterest: $showPointsOfInterest,
selectedMapLayer: $selectedMapLayer,
selectedPosition: $selectedPosition,
selectedWaypoint: $selectedWaypoint
)
}
.mapScope(mapScope)
.mapStyle(mapStyle)
Expand All @@ -74,6 +86,9 @@ struct MeshMap: View {
.mapControlVisibility(.automatic)
}
.controlSize(.regular)
.onMapCameraChange(frequency: MapCameraUpdateFrequency.continuous, { context in
distance = context.camera.distance
})
.onTapGesture(count: 1, perform: { position in
newWaypointCoord = reader.convert(position, from: .local) ?? CLLocationCoordinate2D.init()
})
Expand All @@ -92,6 +107,7 @@ struct MeshMap: View {
Logger.services.error("Unable to convert local point to coordinate on map.")
return
}
centerMapAt(coordinate: coordinate)

newWaypointCoord = coordinate
editingWaypoint = WaypointEntity(context: context)
Expand Down Expand Up @@ -210,4 +226,18 @@ struct MeshMap: View {
UIApplication.shared.isIdleTimerDisabled = false
})
}

// moves the map to a new coordinate
private func centerMapAt(coordinate: CLLocationCoordinate2D) {
withAnimation(.easeInOut(duration: 0.2), {
position = .camera(
MapCamera(
centerCoordinate: coordinate, // Set new center
distance: distance, // Preserve current zoom distance
heading: 0, // align north
pitch: 0 // set view to top down
)
)
})
}
}
4 changes: 2 additions & 2 deletions Widgets/WidgetsLiveActivity.swift
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ struct WidgetsLiveActivity: Widget {
}
}

//struct WidgetsLiveActivity_Previews: PreviewProvider {
// struct WidgetsLiveActivity_Previews: PreviewProvider {
// static let attributes = MeshActivityAttributes(nodeNum: 123456789, name: "RAK Compact Rotary Handset Gray 8E6G")
// static let state = MeshActivityAttributes.ContentState(
// timerRange: Date.now...Date(timeIntervalSinceNow: 60), connected: true, channelUtilization: 25.84, airtime: 10.01, batteryLevel: 39, nodes: 17, nodesOnline: 9)
Expand All @@ -139,7 +139,7 @@ struct WidgetsLiveActivity: Widget {
// .previewContext(state, viewKind: .content)
// .previewDisplayName("Notification")
// }
//}
// }

struct LiveActivityView: View {
@Environment(\.colorScheme) private var colorScheme
Expand Down
10 changes: 5 additions & 5 deletions scripts/lint/lint-fix-changes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,22 @@ if [[ -e "${SWIFT_LINT}" ]]; then
##### Fix files or exit if no files found for fixing #####
if [ "$count" -ne 0 ]; then
echo "Found files to fix! Running swiftLint --fix..."

# Run SwiftLint --fix on each file
for ((i = 0; i < count; i++)); do
file_var="SCRIPT_INPUT_FILE_$i"
file_path=${!file_var}
echo "Fixing $file_path"
$SWIFT_LINT --fix --path "$file_path"
$SWIFT_LINT --fix "$file_path"
done

# Add the fixed files back to staging
for ((i = 0; i < count; i++)); do
file_var="SCRIPT_INPUT_FILE_$i"
file_path=${!file_var}
git add "$file_path"
done

echo "swiftLint --fix completed and files re-staged."

# Optionally lint the fixed files
Expand All @@ -61,4 +61,4 @@ if [[ -e "${SWIFT_LINT}" ]]; then
else
echo "SwiftLint not installed. Please install from https://github.com/realm/SwiftLint"
exit -1
fi
fi

0 comments on commit 089022d

Please sign in to comment.