Skip to content
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 #279

Open
wants to merge 38 commits into
base: master
Choose a base branch
from

Conversation

webwarrior-ws
Copy link
Contributor

Supersedes #274

@knocte knocte mentioned this pull request May 23, 2024
global.json Outdated Show resolved Hide resolved
@knocte
Copy link
Member

knocte commented May 23, 2024

@webwarrior-ws let's fix the style of the welcomePage, in Linux it looks like this:

Screenshot 2024-05-23 at 4 37 21 PM

.github/workflows/CI.yml Outdated Show resolved Hide resolved
.gitmodules Outdated Show resolved Hide resolved
@knocte
Copy link
Member

knocte commented May 23, 2024

let's fix the style of the welcomePage, in Linux it looks like this:

Looking at same screenshot above, another issue: window title is not the same as geewallet (should be "geewallet", not "GWallet.Frontend.Maui"

@webwarrior-ws webwarrior-ws force-pushed the maui-conversion branch 3 times, most recently from 9f9db60 to f38b168 Compare May 23, 2024 12:51
@knocte
Copy link
Member

knocte commented May 24, 2024

I found another toolbar-related bug: after sending a payment, and clicking "ok" on the modal dialog that tells me that the transaccion was succesful, the wallet goes back to the ReceivePage but doesn't show a back button:

Screenshot 2024-05-24 at 7 45 36 PM

@knocte
Copy link
Member

knocte commented May 24, 2024

With regards to style, the buttons at the bottom of the pages are always too close to the other widgets, while there should be some padding:

  • Next button:
Screenshot 2024-05-24 at 6 58 13 PM
  • Finish button:
Screenshot 2024-05-24 at 7 00 08 PM
  • Both "Send" and "Cancel" buttons:
Screenshot 2024-05-24 at 7 48 27 PM

I guess what happens is that XamarinForms has some sort of default padding for the stacklayout elements or something, because I see some proper separation in geewallet master branch (even between the textboxes). Example:

Screenshot 2024-05-24 at 7 57 15 PM

@webwarrior-ws webwarrior-ws force-pushed the maui-conversion branch 2 times, most recently from 62068cc to 640922e Compare May 27, 2024 13:37
@knocte
Copy link
Member

knocte commented May 27, 2024

@webwarrior-ws nit: please fix all commit messages to use the word "scripts", not "Scripts", because this word is matching a folder name in the repo, and it should match its case to avoid any confusions.

scripts/configure.fsx Outdated Show resolved Hide resolved
@webwarrior-ws webwarrior-ws force-pushed the maui-conversion branch 2 times, most recently from 9a1456f to 1d05cdf Compare May 28, 2024 09:47
.github/workflows/CI.yml Outdated Show resolved Hide resolved
scripts/snap_release.fsx Outdated Show resolved Hide resolved
Padding = Thickness(0.),
BorderColor = Color.SeaShell)
frame

let private CreateWidgetsForAccount (currency: Currency) currencyLogoImg classId: BalanceWidgets =
let accountBalanceLabel = CreateLabelWidgetForAccount LayoutOptions.Start
// TODO: [FS0044] This construct is deprecated. The StackLayout expansion options are deprecated; please use a Grid instead.
// Should remove #nowarn 44 after fixing this.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@webwarrior-ws thanks for adding this comment, but looks like it is misplaced? shouldn't it be placed in function CreateLabelWidgetForAccount?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, because what causes a warning is usage of LayoutOptions.EndAndExpand, which occurs on the next line

@knocte
Copy link
Member

knocte commented May 29, 2024

Nit I found in GTK:

Screenshot 2024-05-29 at 9 53 18 AM

Please compare to master branch, which I guess gives a bit of separation between the "Amount:" label and the "Not enough funds" label.

@webwarrior-ws webwarrior-ws force-pushed the maui-conversion branch 2 times, most recently from 176bbe2 to 9377843 Compare May 29, 2024 09:30
@webwarrior-ws
Copy link
Contributor Author

Please compare to master branch, which I guess gives a bit of separation between the "Amount:" label and the "Not enough funds" label.

Added padding between labels in Maui/Gtk

@webwarrior-ws webwarrior-ws force-pushed the maui-conversion branch 3 times, most recently from 67c1e52 to f7ee056 Compare May 29, 2024 10:25
parhamsaremi and others added 8 commits July 1, 2024 11:02
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
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.
Added stepsto upload generated APK file as CI artifact.
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.
Currently crashes the app if using back arrow.
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.
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
```
@knocte
Copy link
Member

knocte commented Jul 2, 2024

IIRC navigation bar bug was what got us considering switch to .NET8. But that wasn't the only reason? .NET6 is nearing end of support anyways.

The latter is just a secondary reason (in importance); mention both but emphasize on the navigation problem.

Switch to .NET8 to fix bug in Android when using back button
in navigation bar crashes the app. Continue using .NET6 for
GTK.
To include latest changes regarding Gtk application id. Use
default MauiGtkApplication.Name derived from executable name.
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.
To latest version that uses NonUnique flag for Gtk.Application.
This removes need for DBus communication, so removed DBus slot
from snapcraft.yaml.
Change Maui submodule to track Mali repository since this is
what CrossMaui was renamed to.
Fix window title on Gtk platform.
Show navigation bar on ReceivePage after navigating to it as
a result of sending transaction.
Set padding for buttons on Gtk to be consistent with other
platforms as they have padding around buttons by default.
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.
Fix spacing after "Amount" label in SendPage on Gtk platform
so that it is the same as on other platforms.
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.
Fix WelcomePage layout on MAUI/Gtk by using Mali commit that
has better approximation for Label desired size on Gtk.
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).
Fix layout regressions in BalancesPage on Maui/Gtk after
upgrading to Maui 8.
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.
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.
Upload alpha (MAUI) snap package to snap store.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants