diff --git a/LMEMappeCatastaliApp.csproj b/LMEMappeCatastaliApp.csproj index 7a33178..2fcda19 100644 --- a/LMEMappeCatastaliApp.csproj +++ b/LMEMappeCatastaliApp.csproj @@ -28,8 +28,8 @@ it.liviomerola.lmemappecatastali.pro - 1.0.2 - 102 + 1.0.3 + 103 $(ApplicationDisplayVersion) diff --git a/Platforms/Android/MainActivity.cs b/Platforms/Android/MainActivity.cs index d8ce88a..abf1583 100644 --- a/Platforms/Android/MainActivity.cs +++ b/Platforms/Android/MainActivity.cs @@ -4,6 +4,8 @@ using Android.Content.PM; using Android.Database; using Android.OS; using Android.Provider; +using Android.Views; +using AndroidX.Core.View; using LMEMappeCatastaliApp.Services; namespace LMEMappeCatastaliApp; @@ -24,9 +26,18 @@ public class MainActivity : MauiAppCompatActivity protected override void OnCreate(Bundle? savedInstanceState) { base.OnCreate(savedInstanceState); + ApplySystemBarInsets(); QueueViewedFile(Intent); } + private void ApplySystemBarInsets() + { + var content = FindViewById(Android.Resource.Id.Content); + if (content is null) return; + ViewCompat.SetOnApplyWindowInsetsListener(content, new SystemBarInsetsListener(content)); + ViewCompat.RequestApplyInsets(content); + } + protected override void OnNewIntent(Intent? intent) { base.OnNewIntent(intent); @@ -80,4 +91,19 @@ public class MainActivity : MauiAppCompatActivity var index = cursor.GetColumnIndex(IOpenableColumns.DisplayName); return index >= 0 ? cursor.GetString(index) : null; } + + private sealed class SystemBarInsetsListener(Android.Views.View content) : Java.Lang.Object, IOnApplyWindowInsetsListener + { + private readonly int _left = content.PaddingLeft; + private readonly int _top = content.PaddingTop; + private readonly int _right = content.PaddingRight; + + public WindowInsetsCompat? OnApplyWindowInsets(Android.Views.View? view, WindowInsetsCompat? insets) + { + if (view is null || insets is null) return insets; + var systemBars = insets.GetInsets(WindowInsetsCompat.Type.SystemBars()); + view.SetPadding(_left, _top, _right, systemBars?.Bottom ?? 0); + return insets; + } + } } diff --git a/README.md b/README.md index ca97188..e41265c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ App .NET MAUI Blazor Hybrid per Android, iOS, Mac Catalyst e Windows, pensata per consultare mappe catastali e lavorare sul campo con GPS. +## Versione Pro 1.0.3 test + +- I pannelli mobili rispettano la barra di navigazione Android e mantengono il pulsante Help completamente raggiungibile tramite scorrimento. + ## Versione Pro 1.0.2 test - Linee e punti KML/KMZ vengono sempre importati, anche quando il documento viene riconosciuto come catastale; il filtro particelle separa soltanto i poligoni di foglio o cornice. diff --git a/wwwroot/css/app.css b/wwwroot/css/app.css index 0cda944..c54fde2 100644 --- a/wwwroot/css/app.css +++ b/wwwroot/css/app.css @@ -1295,6 +1295,8 @@ input[type="checkbox"] { z-index: 1100; display: flex; flex-direction: column; + min-height: 0; + overflow: hidden; width: min(430px, calc(100% - 48px)); border-left: 1px solid var(--line); background: var(--panel); @@ -1347,10 +1349,15 @@ h2 { } .panel-content { + flex: 1 1 auto; + min-height: 0; display: grid; + align-content: start; gap: 12px; overflow-y: auto; - padding: 15px 16px 24px; + overscroll-behavior: contain; + padding: 15px 16px max(32px, calc(24px + env(safe-area-inset-bottom))); + scroll-padding-bottom: max(32px, calc(24px + env(safe-area-inset-bottom))); } .panel-section {