feat: complete UM Trace iOS and field UI integration

This commit is contained in:
Brent Perteet
2026-08-23 20:54:03 -05:00
parent 16c2ada09b
commit 36f583169c
38 changed files with 548 additions and 212 deletions

View File

@@ -2,34 +2,31 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:vm="clr-namespace:FieldLogger.ViewModels"
xmlns:controls="clr-namespace:FieldLogger.Views.Controls"
x:Class="FieldLogger.Views.MapPage"
x:DataType="vm:MapViewModel"
Title="Map"
Shell.NavBarIsVisible="False"
BackgroundColor="{DynamicResource UlColorMap}">
<Grid RowDefinitions="Auto,*">
<Border Style="{StaticResource UlCard}" Margin="12" Padding="16" BackgroundColor="{DynamicResource UlColorSurfaceRaised}"
Stroke="{DynamicResource UlColorBorder}" StrokeShape="RoundRectangle 12"
ZIndex="1">
<Grid RowDefinitions="Auto,Auto" ColumnDefinitions="*,Auto" RowSpacing="4" ColumnSpacing="12">
<VerticalStackLayout>
<Label Text="LIVE MAP" FontSize="14" FontAttributes="Bold" CharacterSpacing="1.5"
TextColor="{DynamicResource UlColorPrimary}" />
<Label Text="{Binding JobName, TargetNullValue='No active job'}"
Style="{StaticResource UlSectionTitle}" TextColor="{DynamicResource UlColorText}"
SemanticProperties.HeadingLevel="Level1" />
</VerticalStackLayout>
<Button Grid.Column="1" Style="{StaticResource UlButtonSecondary}"
Text="Refresh" Clicked="OnRefreshClicked"
MinimumHeightRequest="{StaticResource UlTouchMinimum}" MinimumWidthRequest="88"
SemanticProperties.Description="Refresh captured points on the map" />
<Label Grid.Row="1" Grid.ColumnSpan="2" Text="{Binding StatusText}" FontSize="14"
TextColor="{DynamicResource UlColorTextMuted}"
SemanticProperties.Description="Current map data status" />
</Grid>
</Border>
<Grid>
<!-- Populated in code-behind: native Map control on iOS/Android/macOS, Google Maps WebView on Windows. -->
<ContentView Grid.RowSpan="2" x:Name="MapHost"
<ContentView x:Name="MapHost"
BackgroundColor="{DynamicResource UlColorMap}"
SemanticProperties.Description="Map of locally captured points for the selected job" />
<controls:AppStatusBar x:Name="AppStatus" VerticalOptions="Start" ZIndex="20" />
<Button Text="↻" FontSize="22" FontAttributes="Bold"
WidthRequest="48" HeightRequest="48" CornerRadius="24" Padding="0"
Margin="16,82,16,16" HorizontalOptions="End" VerticalOptions="Start"
BackgroundColor="{DynamicResource UlColorSurfaceRaised}"
TextColor="{DynamicResource UlColorPrimary}"
BorderColor="{DynamicResource UlColorBorder}" BorderWidth="1"
Clicked="OnRefreshClicked" ZIndex="20"
MinimumHeightRequest="{StaticResource UlTouchMinimum}"
MinimumWidthRequest="{StaticResource UlTouchMinimum}"
SemanticProperties.Description="Refresh captured points on the map" />
<controls:FloatingMenuButton HorizontalOptions="End" VerticalOptions="End" ZIndex="20" />
</Grid>
</ContentPage>