grote / Transportr

Free Public Transport Assistant without Ads or Tracking
https://transportr.app
GNU General Public License v3.0
1.02k stars 185 forks source link

Material Design 3 migration (V2) #927

Open newhinton opened 5 months ago

newhinton commented 5 months ago

Closes #872

This PR is based on, and superseeds @Bnyro 's Material 3 implementation. It takes the UI a step further, and makes heavy use of the Material You colors.

This was implemented and improved with @Bnyro support, consent and collaboration.

Edit: For more info about what this pr does, look in this discussion: https://github.com/Bnyro/Transportr/pull/1

newhinton commented 5 months ago

I agree to the CLA

newhinton commented 5 months ago

Todo:

~In the trip detail view, warnings/notes are no longer colored in the warning color~

michaelblyons commented 5 months ago

Spelled your name wrong in the JSON file.

newhinton commented 5 months ago

ed81b76099358abe4ec3c6984baae78364bf6915 adds better transitions to the details view, which should improve UX by quite a bit.

If it would work properly. Currently the view is jumping around quite a bit (by switching states from middle back to full) but i dont know why. Generally speaking the transitions are a lot nicer than before. Any help is appreciated!

newhinton commented 5 months ago

Known issues:

ialokim commented 5 months ago

Thanks @newhinton and @Bnyro! The screenshots in the linked PR already look very promising!

I will try to test your changes in the coming days and provide some initial feedback.

ialokim commented 5 months ago
  • Select Location from main searchbar, dismiss bottom sheet. Re-select location. Left side of bottom sheet has padding

I haven't encountered that one.

  • Drop shadow of navigation also has padding after above flow
  • Navigation Drawer is invisible below status bar when opened
  • Three State Bottom Sheet has buggy behaviour

But those ones yes.

  • Select Location on map. Start navigation via FAB. New Activity has favorite locations instead of empty list (already present in 2.2.1)

Given this is not a regression, I wouldn't further consider it for this PR.

  • ~Trip Details toolbar menu does not show up~

This one still happens here.

ialokim commented 5 months ago

Additionally, I've found the following issues while testing:

ialokim commented 5 months ago

This definitely needs some more cleanup work, but I do think this is going into the right direction!

Personally, I'm not fully convinced on giving up on the nice Transportr red altogether, given that it's part of the branding, but it seems that's what Material You is suggesting to do?

Bnyro commented 5 months ago

Personally, I'm not fully convinced on giving up on the nice Transportr red altogether, given that it's part of the branding, but it seems that's what Material You is suggesting to do?

Yes, it does. It would be possible to add s preference to toggle the red vs material you colors though.

Altonss commented 5 months ago

Personally, I'm not fully convinced on giving up on the nice Transportr red altogether, given that it's part of the branding, but it seems that's what Material You is suggesting to do?

+1 for trying to keep the Transportr red identity by default if possible :)

michaelblyons commented 5 months ago

It would be possible to add a preference to toggle the red vs Material You colors though.

I think this is what Trail Sense is doing.

newhinton commented 5 months ago

DatePicker dialog has different shape

This is actually not a regression, it is also present in the current design. It is just a bit more visible in this PR.

Personally, I'm not fully convinced on giving up on the nice Transportr red altogether, given that it's part of the branding, but it seems that's what Material You is suggesting to do?

Yes it is. Though i recommend not to introduce a toggle ability, it would require quite a bit of code to make it work properly. It will lead to bugs. And i don't think i want to spend time on implementing that, especially since there is still a bit to do with the base-proposal.

newhinton commented 5 months ago

Todo:

i dont think its a Todo:

newhinton commented 4 months ago

@ialokim @Altonss

I have improved on many of the things you noted. However, there are still some things broken, like the three-state-bottomsheet.

I also found that some issues are very likely due to older libraries beeing used. That opened an entire different can of worms. As an example: I have tried to manually calculate the statusbar height so that i can adjust the backButton in the tripview, with less than optimal results. In newer libraries there is an enableEdgeToEdge() function for Activity. I tried updating the dependency, but that also requires an update to kotlin, which deprecates kotlin-android-extensions which means that we have to switch to viewbindings.

This is rapidly exploding the size of this PR, but i also don't think that we should continue without upgrading the libraries, which are at this point 2-4 years old and up to 5 versions behind.

How should i continue?

Altonss commented 2 months ago

@ialokim @Altonss

I have improved on many of the things you noted. However, there are still some things broken, like the three-state-bottomsheet.

I also found that some issues are very likely due to older libraries beeing used. That opened an entire different can of worms. As an example: I have tried to manually calculate the statusbar height so that i can adjust the backButton in the tripview, with less than optimal results. In newer libraries there is an enableEdgeToEdge() function for Activity. I tried updating the dependency, but that also requires an update to kotlin, which deprecates kotlin-android-extensions which means that we have to switch to viewbindings.

This is rapidly exploding the size of this PR, but i also don't think that we should continue without upgrading the libraries, which are at this point 2-4 years old and up to 5 versions behind.

How should i continue?

I think #902 is a step in the right direction regarding the issues you mentionned. We just need to review/merge it :)