Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b388711dcf | ||
|
|
41405bcc4f | ||
|
|
9b4ff9e188 |
No files matched your search
@@ -28,8 +28,8 @@
|
|||||||
<ApplicationId>com.companyname.lmemappecatastaliapp</ApplicationId>
|
<ApplicationId>com.companyname.lmemappecatastaliapp</ApplicationId>
|
||||||
|
|
||||||
<!-- Versions -->
|
<!-- Versions -->
|
||||||
<ApplicationDisplayVersion>0.4.8</ApplicationDisplayVersion>
|
<ApplicationDisplayVersion>0.4.10</ApplicationDisplayVersion>
|
||||||
<ApplicationVersion>43</ApplicationVersion>
|
<ApplicationVersion>45</ApplicationVersion>
|
||||||
<Version>$(ApplicationDisplayVersion)</Version>
|
<Version>$(ApplicationDisplayVersion)</Version>
|
||||||
|
|
||||||
<!-- To develop, package, and publish an app to the Microsoft Store, see: https://aka.ms/MauiTemplateUnpackaged -->
|
<!-- To develop, package, and publish an app to the Microsoft Store, see: https://aka.ms/MauiTemplateUnpackaged -->
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ using Android.Content.PM;
|
|||||||
using Android.Database;
|
using Android.Database;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
using Android.Provider;
|
using Android.Provider;
|
||||||
|
using Android.Views;
|
||||||
|
using AndroidX.Core.View;
|
||||||
using LMEMappeCatastaliApp.Services;
|
using LMEMappeCatastaliApp.Services;
|
||||||
|
|
||||||
namespace LMEMappeCatastaliApp;
|
namespace LMEMappeCatastaliApp;
|
||||||
@@ -24,9 +26,18 @@ public class MainActivity : MauiAppCompatActivity
|
|||||||
protected override void OnCreate(Bundle? savedInstanceState)
|
protected override void OnCreate(Bundle? savedInstanceState)
|
||||||
{
|
{
|
||||||
base.OnCreate(savedInstanceState);
|
base.OnCreate(savedInstanceState);
|
||||||
|
ApplySystemBarInsets();
|
||||||
QueueViewedFile(Intent);
|
QueueViewedFile(Intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ApplySystemBarInsets()
|
||||||
|
{
|
||||||
|
var content = FindViewById<Android.Views.View>(Android.Resource.Id.Content);
|
||||||
|
if (content is null) return;
|
||||||
|
ViewCompat.SetOnApplyWindowInsetsListener(content, new SystemBarInsetsListener(content));
|
||||||
|
ViewCompat.RequestApplyInsets(content);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void OnNewIntent(Intent? intent)
|
protected override void OnNewIntent(Intent? intent)
|
||||||
{
|
{
|
||||||
base.OnNewIntent(intent);
|
base.OnNewIntent(intent);
|
||||||
@@ -72,4 +83,19 @@ public class MainActivity : MauiAppCompatActivity
|
|||||||
var index = cursor.GetColumnIndex(IOpenableColumns.DisplayName);
|
var index = cursor.GetColumnIndex(IOpenableColumns.DisplayName);
|
||||||
return index >= 0 ? cursor.GetString(index) : null;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
App .NET MAUI Blazor Hybrid per Android, iOS, Mac Catalyst e Windows, pensata per consultare mappe catastali e lavorare sul campo con GPS.
|
App .NET MAUI Blazor Hybrid per Android, iOS, Mac Catalyst e Windows, pensata per consultare mappe catastali e lavorare sul campo con GPS.
|
||||||
|
|
||||||
|
## Versione 0.4.10
|
||||||
|
|
||||||
|
- I pannelli mobili rispettano la barra di navigazione Android e mantengono il pulsante Help completamente raggiungibile tramite scorrimento.
|
||||||
|
|
||||||
|
## Versione 0.4.9
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
## Versione 0.4.8
|
## Versione 0.4.8
|
||||||
|
|
||||||
- Aggiornamento a .NET 10 e target Android API 36.
|
- Aggiornamento a .NET 10 e target Android API 36.
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ foreach ($format in @("apk", "aab")) {
|
|||||||
"-c", $Configuration,
|
"-c", $Configuration,
|
||||||
"-p:AndroidSdkDirectory=$androidSdk",
|
"-p:AndroidSdkDirectory=$androidSdk",
|
||||||
"-p:AndroidPackageFormat=$format",
|
"-p:AndroidPackageFormat=$format",
|
||||||
|
"-p:RunAOTCompilation=false",
|
||||||
"-p:AndroidKeyStore=true",
|
"-p:AndroidKeyStore=true",
|
||||||
"-p:AndroidSigningKeyStore=$keyStore",
|
"-p:AndroidSigningKeyStore=$keyStore",
|
||||||
"-p:AndroidSigningKeyAlias=androiddebugkey",
|
"-p:AndroidSigningKeyAlias=androiddebugkey",
|
||||||
|
|||||||
+8
-1
@@ -1276,6 +1276,8 @@ input[type="checkbox"] {
|
|||||||
z-index: 1100;
|
z-index: 1100;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
min-height: 0;
|
||||||
|
overflow: hidden;
|
||||||
width: min(430px, calc(100% - 48px));
|
width: min(430px, calc(100% - 48px));
|
||||||
border-left: 1px solid var(--line);
|
border-left: 1px solid var(--line);
|
||||||
background: var(--panel);
|
background: var(--panel);
|
||||||
@@ -1328,10 +1330,15 @@ h2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.panel-content {
|
.panel-content {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
min-height: 0;
|
||||||
display: grid;
|
display: grid;
|
||||||
|
align-content: start;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
overflow-y: auto;
|
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 {
|
.panel-section {
|
||||||
|
|||||||
@@ -1013,12 +1013,13 @@ function normalizeKmlFiles(files) {
|
|||||||
const parcelSet = new Set(parcels);
|
const parcelSet = new Set(parcels);
|
||||||
const sheetParts = polygonParts.filter(feature => !parcelSet.has(feature));
|
const sheetParts = polygonParts.filter(feature => !parcelSet.has(feature));
|
||||||
const nonPolygonFeatures = features.filter(feature => geometryPolygons(feature.geometry).length === 0);
|
const nonPolygonFeatures = features.filter(feature => geometryPolygons(feature.geometry).length === 0);
|
||||||
const optionalFeatures = [...sheetParts, ...nonPolygonFeatures];
|
const importedFeatures = [...parcels, ...nonPolygonFeatures];
|
||||||
if (!parcels.length && !(lmeState.includeKmlSheetLayer && optionalFeatures.length)) {
|
const optionalFeatures = sheetParts;
|
||||||
|
if (!importedFeatures.length && !(lmeState.includeKmlSheetLayer && optionalFeatures.length)) {
|
||||||
throw new Error("nessuna particella trovata; attiva 'includi layer del foglio' per importare gli altri elementi");
|
throw new Error("nessuna particella trovata; attiva 'includi layer del foglio' per importare gli altri elementi");
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
geojson: { type: "FeatureCollection", features: parcels },
|
geojson: { type: "FeatureCollection", features: importedFeatures },
|
||||||
sheetGeojson: {
|
sheetGeojson: {
|
||||||
type: "FeatureCollection",
|
type: "FeatureCollection",
|
||||||
features: lmeState.includeKmlSheetLayer ? optionalFeatures : []
|
features: lmeState.includeKmlSheetLayer ? optionalFeatures : []
|
||||||
|
|||||||
Reference in new issue
Block a user