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

Migrate to .net 8 and Material 3 #2743

Merged
merged 48 commits into from
Jan 14, 2025
Merged

Migrate to .net 8 and Material 3 #2743

merged 48 commits into from
Jan 14, 2025

Conversation

PhilippC
Copy link
Owner

This is a fundamental change to the app under the hood, but shouldn't introduce behavior changes (except for the somewhat more modern look due to Material 3 and GMS Code Scanner):

This PR updates the C# projects migrating from Xamarin.Android to .net8 (Android), i.e. SDK-Styles projects. Several changes were required as a consequence:

  • The themes/styles as defined previously did not work anymore with the updated build system, so I decided to migrate to Material 3 (including switching to vector drawables for in-app icons).
  • QR scanning with ZXing wasn't compatible with .net8. I switched to GMS CodeScanner
  • I removed all support library dependencies and replaced them with AndroidX. This included a rework of the settings screens.

I also included a fix:

  • mask password textedit before assigning password. This ensures that there is not the fraction of a second where the password might be visible.

PhilippC and others added 30 commits October 8, 2024 14:59
…onedrive:// is now no longer supported, but has been replaced with onedrive2:// a long time ago already.
Gradle v2 uses node16 which will be EOL soon.

"The only major breaking change from gradle-build-action@v2.12.0
is the update to require a Node 20 runtime environment.

Aside from that change, this release should generally serve as a
drop-in replacement for gradle-build-action@v2."

Gradle updated the action name, following the advice from
/~https://github.com/gradle/gradle-build-action/releases/tag/v3.0.0
v4 included breaking changes, but the setup here was compatible
thanks to the usage of `${{ github.job }}`.
/~https://github.com/actions/upload-artifact/releases/tag/v4.0.0

v3 artifact actions will be deprecated on November 30th
https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/

node16 actions will be EOL on October 15th
https://github.blog/changelog/2024-09-25-end-of-life-for-actions-node16/

These seem contradictory but I _guess_ on self-hosted runners one
can keep using v3 artifact actions until November 30th.
v3 is node20 and doesn't do validation by default like v4

validation can be disabled in v4 but when that bump is made it's
probably better to resolve the issues rather than ignore them.
…eded onedrive aar.

I wasn't successful in binding the latest dropbox sdk (7.0) and therefor only updated to 5.4.6 which doesn't require an .aar.
…licated for new projects in new folders. this will be moved back to the original locations (and then squashed). App currently does not build.
 * switched from support library to androidx
 * disabled some code which will need to be fixed later (strings in manifest, zxing qr reader)
 * changes in styles need to be tested
still crashing when trying to use any code from the Keyboard binding.
…s broken after upgrading to sdk-style projects)
… into many smaller ones to get rid of "ToolbarPreference" workaround
 * updates themes and color definitions
 * removed many color attributes from views and special configurations
 * reworked settings completely to get rid of "settings toolsbar"
 * use DayNight theme instead of custom light/dark
Note that there are quite a few issues left.
…here is not the fraction of a second where the password might be visible.
… of ZXing which is no longer compatible with new .net Android); copy resource string from KP2AKeyboard project to app such that it can be used in the manifest.
…e the names of the old ones. adjust the .sln and .csproj files accordingly. This is a bit like a squash commit, as it shows the diff between the pre-sdk-style code with the updated code (sdk-style, Material3, Zxing=>GMS CodeScanner, Kdbp support removed)
…nifests folder. Adjust build.yml for renamed test project. Add AndroidManifest.xml to .gitignore as this is only a link.
@PhilippC PhilippC merged commit 81b48a3 into master Jan 14, 2025
2 checks passed
@PhilippC PhilippC deleted the sdk-style-projects branch January 14, 2025 14:21
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.

2 participants