feat: implement identity authentication, authorization policies, and MAUI platform support with Docker orchestration

This commit is contained in:
2026-04-29 20:37:41 +02:00
parent 10efed0369
commit 0210611edf
55 changed files with 2359 additions and 949 deletions
@@ -0,0 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.nexus.ereader">
<application android:allowBackup="true" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
@@ -0,0 +1,19 @@
using Android.App;
using Android.Content.PM;
using Android.OS;
using Android.Util;
namespace NexusReader.Maui;
[Activity(Theme = "@style/Maui.MainTheme.NoActionBar", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
public class MainActivity : MauiAppCompatActivity
{
private const string Tag = "NEXUS_MAUI";
protected override void OnCreate(Bundle? savedInstanceState)
{
Log.Debug(Tag, "MainActivity.OnCreate starting...");
base.OnCreate(savedInstanceState);
Log.Debug(Tag, "MainActivity.OnCreate completed");
}
}
@@ -0,0 +1,34 @@
using Android.App;
using Android.Runtime;
using Android.Util;
namespace NexusReader.Maui;
[Application]
public class MainApplication : MauiApplication
{
private const string Tag = "NEXUS_MAUI";
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
: base(handle, ownership)
{
Log.Debug(Tag, "MainApplication constructor called");
}
protected override MauiApp CreateMauiApp()
{
Log.Debug(Tag, "CreateMauiApp starting...");
try
{
var app = MauiProgram.CreateMauiApp();
Log.Debug(Tag, "CreateMauiApp successful");
return app;
}
catch (Exception ex)
{
Log.Error(Tag, $"CreateMauiApp FAILED: {ex.Message}");
Log.Error(Tag, ex.StackTrace);
throw;
}
}
}
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#512BD4</color>
<color name="colorPrimaryDark">#2B0B98</color>
<color name="colorAccent">#DFD8F7</color>
</resources>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="Maui.MainTheme.NoActionBar" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>