-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MAUI: first steps #299
base: master
Are you sure you want to change the base?
MAUI: first steps #299
Commits on Nov 26, 2024
-
Used the template in [1] for Maui. Install JDK 11 to fix error "Java SDK 11.0 or above is required when using .NET 6 or higher" when building MAUI Android frontend [2]. Disable checking of out-of-support workloads in Frontend.Maui.fsproj so that project can be built because it still uses .NET6 workloads. [1] https://github.com/fabulous-dev/FSharp.Mobile.Templates/tree/stable-net6.0/templates/Maui [2] https://stackoverflow.com/a/77519085/544947
Configuration menu - View commit details
-
Copy full SHA for 6ea2bfe - Browse repository at this point
Copy the full SHA 6ea2bfeView commit details -
Frontend.Maui: use XF XAML files for building proj
This way we don't have to implement everything from the beginning, and we can reuse existing code. Remove "Install JDK 21" step as it's no longer needed.
Configuration menu - View commit details
-
Copy full SHA for e071064 - Browse repository at this point
Copy the full SHA e071064View commit details -
Frontend.Maui: workaround for build fail in VS22
Workaround for `"RuntimeConfigParserTask" task was not found` error when building and deploying Android frontend using Visual Studio 2022.
Configuration menu - View commit details
-
Copy full SHA for d514bbc - Browse repository at this point
Copy the full SHA d514bbcView commit details -
Frontend.Maui: build Maui on linux using GTK
We use our own fork of maui for building maui-gtk since we fixed some things. Maui: added as submodule. Gtk workload: as automatic workload manifest detection doesn't work for some reason, download and uzip mainfest file so .NET knows about gtk workload. Because of new versions of manifest, we got the following error. So by skipping manifest update we make sure that we don't get unwanted updates. ``` Workload installation failed: Failed to install manifest gtksharp.net.sdk.gtk version 3.24.24-rev.87-develop: gtksharp.net.sdk.gtk.manifest-6.0.300::3.24.24-rev.87-develop is not found in NuGet feeds https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-531f715f/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-3f6c45a2/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-emsdk-3f6c45a2-1/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json;https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json;https://pkgs.dev.azure.com/xamarin/public/_packaging/SkiaSharp/nuget/v3/index.json;https://nuget.pkg.github.com/GtkSharp/index.json".. ``` Co-authored-by: webwarrior <reg@webwarrior.ws>
Configuration menu - View commit details
-
Copy full SHA for 8e7b2e7 - Browse repository at this point
Copy the full SHA 8e7b2e7View commit details -
CI: build Maui (non-GTK) frontend
Build Maui Android frontend in macOS--dotnet6-and-mono CI lane.
Configuration menu - View commit details
-
Copy full SHA for 2939e3e - Browse repository at this point
Copy the full SHA 2939e3eView commit details -
Frontend.Maui: fix window size for gtk
Initial window size was too thin so we tried to resize the window once it's created. Also extracted default window size to a constant in FrontendHelpers to prevent code duplication. Co-authored-by: webwarrior <reg@webwarrior.ws>
Configuration menu - View commit details
-
Copy full SHA for 4de680f - Browse repository at this point
Copy the full SHA 4de680fView commit details -
Frontend.MAUI: add WelcomePage2
Add WelcomePage2 .xaml and .xaml.fs files. Enable navigation to WelcomePage2 in MAUI version of WelcomePage. Fix navigation by referencing Initialization.fs from Frontend.XF and using it to set main page like it is done in Frontend.XF project. Use Grid instead of StackLayout so that Maui layout is fixed. Co-authored-by: Parham <parhaamsaremi@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for ee52044 - Browse repository at this point
Copy the full SHA ee52044View commit details -
Frontend.Maui: make Linux debugging possible
Change launchSettings.json so debugging is possible in Linux using JetBrains Rider.
Configuration menu - View commit details
-
Copy full SHA for caa6b3f - Browse repository at this point
Copy the full SHA caa6b3fView commit details -
Frontend.Maui: add LoadingPage
Added LoadingPage. Abstracted StartTimer function to work on both Xamarin.Forms and Maui (Device.StartTimer is deprecated in Maui). Add mappers for BorderColor and CornerRadius for Frame elements so they can now have borders. Use Grid instead of StackLayout so that Maui layout is fixed. Co-authored-by: Parham <parhaamsaremi@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 9b3bf81 - Browse repository at this point
Copy the full SHA 9b3bf81View commit details -
Frontend.Maui: add BalancesPage
Add BalancesPage. Fixed and simplified layout of BalancesPage. Fix layout of currency balances on balances page in Maui. Fix circle chart rendering in Maui. Use Launcher from Maui.Essentials on Maui instead of one from Xamarin.Essentials. Made click event handlers work for Gtk. Had to wrap footer label in a Frame for this. LogoImg had wrong size and it had to be resized based on the layout size. The reason is that Aspect for Image is not working in Maui/Gtk and should be fixed later (see [1]). Also added #nowarn 44 and #nowarn 1182 in BalancesPage, CircleChartView, and FrontendHelpers because of the following warnings: ``` BalancesPage.xaml.fs(503, 13): [FS1182] The value 'tapper' is unused BalancesPage.xaml.fs(443, 13): [FS1182] The value 'currentChartView' is unused BalancesPage.xaml.fs(443, 30): [FS1182] The value 'otherChartView' is unused BalancesPage.xaml.fs(439, 41): [FS1182] The value 'totalOtherFiatAmountFrame' is unused BalancesPage.xaml.fs(437, 13): [FS1182] The value 'switchingToReadOnly' is unused CircleChartView.fs(181, 35): [FS0044] This construct is deprecated. The StackLayout expansion options are deprecated; please use a Grid instead. BalancesPage.xaml.fs(53, 19): [FS1182] The value 'currencyImages' is unused CircleChartView.fs(180, 37): [FS0044] This construct is deprecated. The StackLayout expansion options are deprecated; please use a Grid instead. FrontendHelpers.fs(425, 60): [FS0044] This construct is deprecated. The StackLayout expansion options are deprecated; please use a Grid instead. ``` Co-authored-by: Parham <parhaamsaremi@gmail.com> [1] jsuarezruiz/maui-linux#69
Configuration menu - View commit details
-
Copy full SHA for 5fd07d8 - Browse repository at this point
Copy the full SHA 5fd07d8View commit details -
Frontend.Maui: add ZXing.Net.Maui library
Add ZXing.Net.Maui library for barcode gerneration/reading. It is successor to ZXing.Net.Mobile, which is used in XF project. Use CrossMaui version of ZXing.Net.Maui libraryon Gtk. Reference projects directly instead of using nuget packages.
Configuration menu - View commit details
-
Copy full SHA for bde855b - Browse repository at this point
Copy the full SHA bde855bView commit details -
Frontend(XF,Maui): added remaining pages
Added PairingToPage, PairingFromPage, Send, Receive pages. Made PairingFrom page work on Maui by moving configuration of barcode view from .xaml file to code. Use Grid instead of StackLayout so that Maui layout is fixed. Upgrade SendPage layout so that Maui and Xamarin look like each other. Abstracted creation of barcode scanner page to FrontendHelpers.GetBarcodeScannerPage function. Moved platform checking logic to one place (canScanBarcode variable). This removes code duplication between XF and Maui. If QR code is invalid, show alert to the user instead of crashing the app. Fix crash after scanning barcode by checking if modal stack is not empty before calling PopModalAsync(). Co-authored-by: Parham <parhaamsaremi@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for ef81dce - Browse repository at this point
Copy the full SHA ef81dceView commit details -
Frontend.Maui: Color.Default equivalent for Maui
Save previous assigned color and use instead of Color.Default. This is needed because maui doesn't have Color.Default [1]. And this commit is workaround for that. [1] dotnet/Microsoft.Maui.Graphics#57
Configuration menu - View commit details
-
Copy full SHA for a5a4fc1 - Browse repository at this point
Copy the full SHA a5a4fc1View commit details -
GithubCI: use nuget source instead of Github
Use nuget source instead of Github packages so that there is no need for authentication anymore. Update maui submodule to point to CrossMaui/new branch.
Configuration menu - View commit details
-
Copy full SHA for c4d5386 - Browse repository at this point
Copy the full SHA c4d5386View commit details -
Added stepsto upload generated APK file as CI artifact.
Configuration menu - View commit details
-
Copy full SHA for 7505a86 - Browse repository at this point
Copy the full SHA 7505a86View commit details -
sln,Frontend.Maui: allow proj be built in VS4Mac
The new MAUI project was not included in the solution so you could not build it in VS4Mac. After trying it, it was giving a clang compiler error, that we avoid with a workaorund in the project file.
Configuration menu - View commit details
-
Copy full SHA for e84d674 - Browse repository at this point
Copy the full SHA e84d674View commit details -
Frontend.Maui: show navigation bar on Android
Currently crashes the app if using back arrow.
Configuration menu - View commit details
-
Copy full SHA for 3f64345 - Browse repository at this point
Copy the full SHA 3f64345View commit details -
CI,scripts,Frontend.Maui: build MAUI snap
Build MAUI snap (snap_alpha job) in addition to XF snaps. Temporarily remove CI snap_aplha job dependencies. Make MAUI/Gtk app process console args, and if it's "--version", print version and exit without launching UI. Ignore Frontend.Maui in FindOffendingPrintfUsage function as it's not relevant for new .NET versions used by MAUI. Change app name on Gtk so that name can be used in dbus slots declaration in snap. Use snapcraft 7.x for MAUI and continue using snapcraft 6.x for XF.
Configuration menu - View commit details
-
Copy full SHA for f6c7cbc - Browse repository at this point
Copy the full SHA f6c7cbcView commit details -
snap: use dotnet runtime from packages
As a workaround to issue 14 of [1]. [1] https://github.com/canonical/dotnet-snap/
Configuration menu - View commit details
-
Copy full SHA for fb5269d - Browse repository at this point
Copy the full SHA fb5269dView commit details -
snap: use dotnet-runtime-7.0 in MAUI snap
Since dotnet-runtime-6.0 causes the following error when running snap: ``` Error: [/snap/gee-maui-preview/x1/usr/share/dotnet/host/fxr] does not exist ```
Configuration menu - View commit details
-
Copy full SHA for 5a45af6 - Browse repository at this point
Copy the full SHA 5a45af6View commit details -
Frontend.Maui: switch to .NET8 for Android
Switch to .NET8 to fix bug in Android when using back button in navigation bar crashes the app. Continue using .NET6 for GTK.
Configuration menu - View commit details
-
Copy full SHA for e80c3cd - Browse repository at this point
Copy the full SHA e80c3cdView commit details -
Frontend.Maui: update Maui submodule
To include latest changes regarding Gtk application id. Use default MauiGtkApplication.Name derived from executable name.
Configuration menu - View commit details
-
Copy full SHA for f34efb5 - Browse repository at this point
Copy the full SHA f34efb5View commit details -
Frontend.Maui: show nav toolbar after page load
Show navigation toolbar only after page is loaded in MAUI. Otherwise, navigation toolbar would show up briefly on old page (BalancesPage in our case) before switching to new page.
Configuration menu - View commit details
-
Copy full SHA for ad5961a - Browse repository at this point
Copy the full SHA ad5961aView commit details -
Frontend.Maui: update Maui submodule
To latest version that uses NonUnique flag for Gtk.Application. This removes need for DBus communication, so removed DBus slot from snapcraft.yaml.
Configuration menu - View commit details
-
Copy full SHA for d075a18 - Browse repository at this point
Copy the full SHA d075a18View commit details -
Frontend.Maui: show navigation bar on SendPage
Just like it is on Xamarin.
Configuration menu - View commit details
-
Copy full SHA for 82d747b - Browse repository at this point
Copy the full SHA 82d747bView commit details -
Frontend.Maui: change from CrossMaui to Mali
Change Maui submodule to track Mali repository since this is what CrossMaui was renamed to.
Configuration menu - View commit details
-
Copy full SHA for f979c84 - Browse repository at this point
Copy the full SHA f979c84View commit details -
Frontend.Maui: fix title on Gtk
Fix window title on Gtk platform.
Configuration menu - View commit details
-
Copy full SHA for ffbafcf - Browse repository at this point
Copy the full SHA ffbafcfView commit details -
Frontend.Maui: show nav bar page after sending tx
Show navigation bar on ReceivePage after navigating to it as a result of sending transaction.
Configuration menu - View commit details
-
Copy full SHA for a4bc73c - Browse repository at this point
Copy the full SHA a4bc73cView commit details -
Frontend.Maui: fix button padding on Gtk
Set padding for buttons on Gtk to be consistent with other platforms as they have padding around buttons by default.
Configuration menu - View commit details
-
Copy full SHA for e6986db - Browse repository at this point
Copy the full SHA e6986dbView commit details -
scripts,CI: determine & build frontend in scripts
Determine frontend to be built in configure script and build it in make script. Have 2 variants of global.json (one for MAUI/Gtk with .NET6 and one for other MAUI platfoprms with .NET8) and choose appropriate one in configure script.
Configuration menu - View commit details
-
Copy full SHA for 2171300 - Browse repository at this point
Copy the full SHA 2171300View commit details -
Frontend.Maui: fix spacing after "Amount" label
Fix spacing after "Amount" label in SendPage on Gtk platform so that it is the same as on other platforms.
Configuration menu - View commit details
-
Copy full SHA for 4d04256 - Browse repository at this point
Copy the full SHA 4d04256View commit details -
CI,scripts: refactoring of Maui/Gtk builds
Extracted installation of gtk workload and adding Maui nuget source to separate script to remove code duplication. Renamed DotNetVersion to DotNetVersionForMauiGtk and made it and GtkSharpVersion workflow-level env vars in CI.yml.
Configuration menu - View commit details
-
Copy full SHA for 1860173 - Browse repository at this point
Copy the full SHA 1860173View commit details -
Frontend.Maui: use fix in Mali for WelcomePage
Fix WelcomePage layout on MAUI/Gtk by using Mali commit that has better approximation for Label desired size on Gtk.
Configuration menu - View commit details
-
Copy full SHA for 0e61f11 - Browse repository at this point
Copy the full SHA 0e61f11View commit details -
CI,scripts,snap,Frontend.Maui: use .NET 8
Switch to using .NET 8 for all frontends. Use Maui 8 on Gtk. This unifies .NET versions and gets rid of .NET 6, which is nearing end of suport anyway. Update Microsoft.Extensions.DependencyInjection to v 8.0.0. This iss needed to avoid error: ``` error NU1605: Warning As Error: Detected package downgrade: Microsoft.Extensions.DependencyInjection from 8.0.0 to 6.0.0. Reference the package directly from the project to select a different version. ``` Install maui workloads on windows--dotnet8-* lanes so that Maui/Android can be built. Call fsxc with DOTNET_ROLL_FORWARD=Major to allow it to run under newer .NET version (we use .NET8 now, and fsxc is compiled for .NET6).
Configuration menu - View commit details
-
Copy full SHA for ae1f179 - Browse repository at this point
Copy the full SHA ae1f179View commit details -
Frontend.Maui: fix some layout issues on Maui/Gtk
Fix layout regressions in BalancesPage on Maui/Gtk after upgrading to Maui 8.
Configuration menu - View commit details
-
Copy full SHA for 22d9d23 - Browse repository at this point
Copy the full SHA 22d9d23View commit details -
Forntend.Maui: workaround for button width on Gtk
Implemented workaround for incorrect width of some buttons on Gtk (which were stretched to window width) by introducing 3 columns to grids in ReceivePage and SendPage. Buttons are placed in central column, while other grid children span all 3 columns.
Configuration menu - View commit details
-
Copy full SHA for dea5d4b - Browse repository at this point
Copy the full SHA dea5d4bView commit details -
Frontend(XF,Maui): fix in WelcomePage (datepicker)
Fixed layout of date picker in WelcomePage on Maui/Gtk. It was way too tall, now it has height of about one line of text, like on other platforms.
Configuration menu - View commit details
-
Copy full SHA for d5950d3 - Browse repository at this point
Copy the full SHA d5950d3View commit details -
CI,scripts: upload MAUI snap to snap store
Upload alpha (MAUI) snap package to snap store.
Configuration menu - View commit details
-
Copy full SHA for 182695e - Browse repository at this point
Copy the full SHA 182695eView commit details
Commits on Nov 28, 2024
-
Frontend.Maui: use Mali packages
Reference Mali nuget packages instead of projects in maui submodule.
Configuration menu - View commit details
-
Copy full SHA for 4c705d8 - Browse repository at this point
Copy the full SHA 4c705d8View commit details -
Frontend.Maui: use ZXing nuget packages on GTK
Use ZXing nuget packages on GTK platform as well as on other platforms. Update to version 0.4.0 because old version does not support .NET 8.
Configuration menu - View commit details
-
Copy full SHA for 9d6e822 - Browse repository at this point
Copy the full SHA 9d6e822View commit details