diff --git a/Xamarin.Neo4j/.gitignore b/Xamarin.Neo4j/.gitignore
new file mode 100644
index 0000000..a4c056d
--- /dev/null
+++ b/Xamarin.Neo4j/.gitignore
@@ -0,0 +1,5 @@
+
+# Android signing — never commit
+*.jks
+*.keystore
+*.env
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/MainActivity.cs b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/MainActivity.cs
index 4701377..b9b048b 100644
--- a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/MainActivity.cs
+++ b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/MainActivity.cs
@@ -1,8 +1,12 @@
using Android.App;
using Android.Content.PM;
using Android.Content.Res;
+using Android.Views;
+using AndroidX.AppCompat.Widget;
+using AndroidX.Core.View;
using Microsoft.Maui;
using Microsoft.Maui.ApplicationModel;
+using AColor = Android.Graphics.Color;
namespace Xamarin.Neo4j.Android
{
@@ -26,11 +30,39 @@ namespace Xamarin.Neo4j.Android
if (IPlatformApplication.Current?.Application is App app)
{
var nightMode = Resources.Configuration.UiMode & UiMode.NightMask;
- var theme = nightMode == UiMode.NightYes
- ? AppTheme.Dark
- : AppTheme.Light;
+ var isDark = nightMode == UiMode.NightYes;
- MainThread.BeginInvokeOnMainThread(() => app.UpdateTheme(theme));
+ // Status bar icon appearance: dark icons on light bg, white icons on dark bg
+ if (Window != null)
+ {
+ var controller = new WindowInsetsControllerCompat(Window, Window.DecorView);
+ controller.AppearanceLightStatusBars = !isDark;
+ }
+
+ MainThread.BeginInvokeOnMainThread(() =>
+ app.UpdateTheme(isDark ? AppTheme.Dark : AppTheme.Light));
+ }
+ }
+
+ public override void OnWindowFocusChanged(bool hasFocus)
+ {
+ base.OnWindowFocusChanged(hasFocus);
+ if (hasFocus)
+ TintToolbarOverflow(Window?.DecorView as ViewGroup);
+ }
+
+ // MAUI creates its toolbar programmatically so theme-based tinting doesn't reach
+ // the overflow icon. Walk the view tree and apply the tint directly.
+ private static void TintToolbarOverflow(ViewGroup? parent)
+ {
+ if (parent == null) return;
+ for (var i = 0; i < parent.ChildCount; i++)
+ {
+ var child = parent.GetChildAt(i);
+ if (child is Toolbar toolbar)
+ toolbar.OverflowIcon?.SetTint(AColor.White);
+ else if (child is ViewGroup vg)
+ TintToolbarOverflow(vg);
}
}
}
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Properties/AndroidManifest.xml b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Properties/AndroidManifest.xml
index 0f4f52f..d142390 100644
--- a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Properties/AndroidManifest.xml
+++ b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Properties/AndroidManifest.xml
@@ -22,5 +22,5 @@
-
+
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-hdpi/appicon.png b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-hdpi/appicon.png
new file mode 100644
index 0000000..9a475e1
Binary files /dev/null and b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-hdpi/appicon.png differ
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-mdpi/appicon.png b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-mdpi/appicon.png
new file mode 100644
index 0000000..1e4b7c4
Binary files /dev/null and b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-mdpi/appicon.png differ
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xhdpi/appicon.png b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xhdpi/appicon.png
new file mode 100644
index 0000000..96103bf
Binary files /dev/null and b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xhdpi/appicon.png differ
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xxhdpi/appicon.png b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xxhdpi/appicon.png
new file mode 100644
index 0000000..63b344b
Binary files /dev/null and b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xxhdpi/appicon.png differ
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xxxhdpi/appicon.png b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xxxhdpi/appicon.png
new file mode 100644
index 0000000..a561b03
Binary files /dev/null and b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/mipmap-xxxhdpi/appicon.png differ
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/colors.xml b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/colors.xml
index 04d5627..bb6b742 100644
--- a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/colors.xml
+++ b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/colors.xml
@@ -1,8 +1,8 @@
- #FFFFFF
- #31333b
- #1e2026
- #31333b
- #31333b
+ #0c0c0c
+ #141414
+ #0c0c0c
+ #e2e2e2
+ #141414
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/styles.xml b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/styles.xml
index 6d457a4..c2ef841 100644
--- a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/styles.xml
+++ b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j.Android/Resources/values/styles.xml
@@ -12,25 +12,21 @@
- false
-
-
diff --git a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j/Themes/LightTheme.xaml b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j/Themes/LightTheme.xaml
index 64e49af..41e7fc6 100644
--- a/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j/Themes/LightTheme.xaml
+++ b/Xamarin.Neo4j/Xamarin.Neo4j/Xamarin.Neo4j/Themes/LightTheme.xaml
@@ -7,13 +7,16 @@
- #e4ecf5
+ #f5f5f5
+ #ffebee
+ #c62828
+ #0c0c0c
#868a92
- #31333b
- #e0e0e0
- #31333b
- #31343B
- #FFFFFF
+ #0c0c0c
+ #ffffff
+ #e0e0e0
+ #f5f5f5
+ #ffffff