<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net10.0-android</TargetFramework>
    <OutputType>Exe</OutputType>
    <Nullable>enable</Nullable>
    <AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>

    <!--
      minSdk 28 (Android 9), targetSdk 36. Chosen rather than inherited, because docs/android-port.md
      flagged it as a real decision: the packages constrain targetSdk, not the floor.

      28 is where the three platform APIs this head actually depends on all exist in the framework
      itself rather than behind an AndroidX shim: BiometricPrompt, StrongBox-backed keys, and
      KeyGenParameterSpec.SetUnlockedDeviceRequired. Going lower would mean carrying androidx.biometric
      to reach devices that mostly cannot hold a hardware-backed key anyway — which is the one thing
      the device key store is for.
    -->
    <SupportedOSPlatformVersion>28</SupportedOSPlatformVersion>
    <TargetPlatformVersion>36</TargetPlatformVersion>

    <ApplicationId>dev.dodotech.dodossh</ApplicationId>
    <ApplicationVersion>1</ApplicationVersion>
    <ApplicationDisplayVersion>0.1.0</ApplicationDisplayVersion>

    <!--
      False here for the same reason the desktop head sets it false: this process formats timestamps
      and host names for a person. See DodoSSH.Client.App.csproj.
    -->
    <InvariantGlobalization>false</InvariantGlobalization>
  </PropertyGroup>

  <ItemGroup>
    <!-- The phone's control styles. The palette they draw from lives in Shell and is shared. -->
    <AvaloniaResource Include="Theme/**" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Avalonia" />
    <PackageReference Include="Avalonia.Android" />
    <PackageReference Include="Avalonia.Themes.Fluent" />
    <PackageReference Include="Avalonia.Fonts.Inter" />
    <PackageReference Include="Avalonia.Controls.WebView" />
    <PackageReference Include="CommunityToolkit.Mvvm" />
  </ItemGroup>

  <ItemGroup>
    <!--
      The same view models the desktop head drives. That sharing is the whole reason this head is a
      sibling project rather than a fork: docs/android-port.md's phone-first decision says the interface
      is a redesign, and that what survives it is every view model, command and piece of state.
    -->
    <ProjectReference Include="../DodoSSH.Client.Shell/DodoSSH.Client.Shell.csproj" />
    <ProjectReference Include="../DodoSSH.Client.Session/DodoSSH.Client.Session.csproj" />
    <ProjectReference Include="../DodoSSH.Client.Ssh/DodoSSH.Client.Ssh.csproj" />
    <ProjectReference Include="../DodoSSH.Client.Terminal/DodoSSH.Client.Terminal.csproj" />
  </ItemGroup>

</Project>
