me-web? skeleton: Avalonia 12 app, server, packaging and CI
Build / Desktop, server and tools (push) Successful in 1m7s

The first screen (online or not, a Check button, every language with a
draft notice), the desktop and Android heads, the server's /api/info and
/api/ip, a release tool that builds deb, rpm, a Windows exe, macOS zips,
a signed APK and the server, and the Gitea workflows that run it. Rules
adapted from passolo; AGPL-3.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-15 01:14:44 +02:00
commit 7589121846
76 files changed
+3082

No files matched your search

+16
View File
@@ -0,0 +1,16 @@
using Android.App;
using Android.Content.PM;
using Avalonia.Android;
namespace MeWeb.Android;
[Activity(
Label = "me-web?",
Theme = "@style/MeWebTheme.NoActionBar",
Icon = "@drawable/icon",
MainLauncher = true,
ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode | ConfigChanges.Locale | ConfigChanges.LayoutDirection)]
public class MainActivity : AvaloniaMainActivity
{
}
+17
View File
@@ -0,0 +1,17 @@
using Android.App;
using Android.Runtime;
using Avalonia;
using Avalonia.Android;
namespace MeWeb.Android;
[Application]
public class MainApplication : AvaloniaAndroidApplication<MeWeb.App.App>
{
protected MainApplication(nint javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
{
}
protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) => base.CustomizeAppBuilder(builder).WithInterFont();
}
+27
View File
@@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0-android</TargetFramework>
<SupportedOSPlatformVersion>24</SupportedOSPlatformVersion>
<RootNamespace>MeWeb.Android</RootNamespace>
<ApplicationId>software.arasaka.meweb</ApplicationId>
<ApplicationTitle>me-web?</ApplicationTitle>
<ApplicationDisplayVersion>$(Version)</ApplicationDisplayVersion>
<VersionMajor>$([System.Version]::Parse('$(Version)').Major)</VersionMajor>
<VersionMinor>$([System.Version]::Parse('$(Version)').Minor)</VersionMinor>
<VersionPatch>$([System.Version]::Parse('$(Version)').Build)</VersionPatch>
<ApplicationVersion>$([MSBuild]::Add($([MSBuild]::Multiply($(VersionMajor), 10000)), $([MSBuild]::Add($([MSBuild]::Multiply($(VersionMinor), 100)), $(VersionPatch)))))</ApplicationVersion>
<AndroidPackageFormats>apk</AndroidPackageFormats>
<AndroidEnableProfiledAot>false</AndroidEnableProfiledAot>
<JsonSerializerIsReflectionEnabledByDefault>false</JsonSerializerIsReflectionEnabledByDefault>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia.Android" />
<PackageReference Include="Xamarin.AndroidX.Core.SplashScreen" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MeWeb.App\MeWeb.App.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<application android:label="me-web?" android:icon="@drawable/icon" android:supportsRtl="true" />
</manifest>
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/splash_background" />
</item>
<item android:drawable="@drawable/icon" android:width="120dp" android:height="120dp" android:gravity="center" />
</layer-list>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MeWebTheme" />
<style name="MeWebTheme.NoActionBar" parent="@style/Theme.AppCompat.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowSplashScreenBackground">@color/splash_background</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/icon</item>
<item name="postSplashScreenTheme">@style/MeWebTheme.Main</item>
</style>
<style name="MeWebTheme.Main" parent="MeWebTheme.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
</style>
</resources>
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="splash_background">#1B141C</color>
</resources>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MeWebTheme" />
<style name="MeWebTheme.NoActionBar" parent="@style/Theme.AppCompat.NoActionBar">
<item name="android:windowActionBar">false</item>
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>