diff --git a/src/keepass2android-app/ChangeLog.cs b/src/keepass2android-app/ChangeLog.cs index 18819a33..6c8c5537 100644 --- a/src/keepass2android-app/ChangeLog.cs +++ b/src/keepass2android-app/ChangeLog.cs @@ -14,9 +14,11 @@ using Android.Runtime; using Android.Text; using Android.Text.Method; using Android.Text.Util; +using Android.Util; using Android.Views; using Android.Webkit; using Android.Widget; +using AndroidX.Core.Content; using Google.Android.Material.Dialog; using keepass2android; @@ -29,7 +31,16 @@ namespace keepass2android MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(ctx); builder.SetTitle(ctx.GetString(Resource.String.ChangeLog_title)); List changeLog = new List{ - BuildChangelogString(ctx, new List{Resource.Array.ChangeLog_1_11,Resource.Array.ChangeLog_1_11_net}, "1.11"), + BuildChangelogString(ctx, new List{Resource.Array.ChangeLog_1_12 +#if !NoNet + ,Resource.Array.ChangeLog_1_12_net +#endif + }, "1.12"), + BuildChangelogString(ctx, new List{Resource.Array.ChangeLog_1_11 +#if !NoNet + ,Resource.Array.ChangeLog_1_11_net +#endif + }, "1.11"), BuildChangelogString(ctx, Resource.Array.ChangeLog_1_10, "1.10"), BuildChangelogString(ctx, Resource.Array.ChangeLog_1_09e, "1.09e"), BuildChangelogString(ctx, Resource.Array.ChangeLog_1_09d, "1.09d"), @@ -99,32 +110,28 @@ namespace keepass2android warning = ctx.GetString(Resource.String.PreviewWarning); } - builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AlertDialog)dlgSender).Dismiss(); }); + builder.SetPositiveButton(Android.Resource.String.Ok, (dlgSender, dlgEvt) => {((AndroidX.AppCompat.App.AlertDialog)dlgSender).Dismiss(); }); builder.SetCancelable(false); WebView wv = new WebView(ctx); - wv.SetBackgroundColor(Color.White); - wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, ctx), "text/html", "UTF-8", null); + + + - - //builder.SetMessage(""); builder.SetView(wv); Dialog dialog = builder.Create(); - dialog.DismissEvent += (sender, e) => + dialog.DismissEvent += (sender, e) => { onDismiss(); }; - dialog.Show(); - /*TextView message = (TextView)dialog.FindViewById(Android.Resource.Id.Message); - - - message.TextFormatted = Html.FromHtml(ConcatChangeLog(ctx, changeLog.ToArray())); - message.AutoLinkMask=MatchOptions.WebUrls;*/ + wv.SetBackgroundColor(Color.Transparent); + wv.LoadDataWithBaseURL(null, GetLog(changeLog, warning, dialog.Context), "text/html", "UTF-8", null); + dialog.Show(); } - private static string BuildChangelogString(Context ctx, int changeLogResId, string version) + private static string BuildChangelogString(Context ctx, int changeLogResId, string version) { return BuildChangelogString(ctx, new List() { changeLogResId }, version); @@ -150,32 +157,44 @@ namespace keepass2android } - private const string HtmlStart = @" + private const string HtmlEnd = @" +"; + + private static string GetLog(List changeLog, string warning, Context ctx) + { + string secondaryColor = "31628D"; + string onSurfaceColor = "171D1E"; + if (((int)ctx.Resources.Configuration.UiMode & (int)UiMode.NightMask) == (int)UiMode.NightYes) + { + secondaryColor = "99CBFF"; + onSurfaceColor = "E1E4D6"; + } + + + string HtmlStart = @" "; - private const string HtmlEnd = @" -"; - private static string GetLog(List changeLog, string warning, Context ctx) - { - StringBuilder sb = new StringBuilder(HtmlStart); + + + StringBuilder sb = new StringBuilder(HtmlStart); if (!string.IsNullOrEmpty(warning)) { sb.Append(warning); diff --git a/src/keepass2android-app/Manifests/AndroidManifest_net.xml b/src/keepass2android-app/Manifests/AndroidManifest_net.xml index 79b4b3ab..385381e0 100644 --- a/src/keepass2android-app/Manifests/AndroidManifest_net.xml +++ b/src/keepass2android-app/Manifests/AndroidManifest_net.xml @@ -1,7 +1,7 @@  diff --git a/src/keepass2android-app/Resources/values/strings.xml b/src/keepass2android-app/Resources/values/strings.xml index 5301473e..4081b945 100644 --- a/src/keepass2android-app/Resources/values/strings.xml +++ b/src/keepass2android-app/Resources/values/strings.xml @@ -726,6 +726,19 @@ Close database after three failed biometric unlock attempts. Warning! Biometric authentication can be invalidated by Android, e.g. after adding a new fingerprint in your device settings. Make sure you always know how to unlock with your master password! + + Upgraded from Xamarin Android to .net 8 + Upgraded to Target SDK 34 + Upgraded to Material 3 user interface + Improve autofill to work with Compose apps + Fix hostname matching in autofill and search + + + Upgraded OneDrive SDK to version 5.68 + Upgraded Dropbox SDK to version 7.0.0 + Upgraded Gradle, NewtonsoftJson, FluentFTP, MegaApiClient and okhttp + + Added floating action buttons for search and TOTP overview (if TOTP entries are present).