-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[Jetpack focus] Remove carousel and implement WordPress landing screen redesign #17104
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
[Jetpack focus] Remove carousel and implement WordPress landing screen redesign #17104
Conversation
|
You can test the WordPress changes on this Pull Request by downloading an installable build (wordpress-installable-build-pr17104-5da1473.apk), or scanning this QR code: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your work on this @mkevins.
It's lovely to see Compose work on the project, kudos for stepping forward, doing this and suggesting it for myself too as I'm working on the JP landing screen revamp 🙇 .
The code LGTM, I have a few comments that are part of the review but nothing big.
There's 3 more things I've been thinking of and wanted to share:
- For some reason, when tapping the back button on the screen that comes after tapping the "Connect to your WordPress site" it gets me out of the app.
- I was thinking if we could place the bg brush stroke in Landscape not to the
endedge, but rather at some specific percentile offset. I like how it appears behind the other UI elements, but in landscape orientation it feels like it's just there somewhere in the background. Wdyt? - Are you planning to make the view "full screen"? It feels like it gives a more immersive experience imho when looking at the designs. Those UI bars are cutting stuff 😢 and removing that feeling a bit. My prefs goes for the original design with the full-screen experience:
.../src/wordpress/java/org/wordpress/android/ui/accounts/login/LoginPrologueRevampedFragment.kt
Outdated
Show resolved
Hide resolved
.../src/wordpress/java/org/wordpress/android/ui/accounts/login/LoginPrologueRevampedFragment.kt
Outdated
Show resolved
Hide resolved
...ess/src/wordpress/java/org/wordpress/android/ui/accounts/login/compose/components/Tagline.kt
Outdated
Show resolved
Hide resolved
This is actually the existing behavior.. I haven't looked into why this is happening, but if I can find the root cause, I'll try to see if it's in scope to address it in this revamp.
I'm not sure I entirely follow what you mean here.. but I guess you mean to move the brush stroke closer to the middle? It can certainly be achieved with some spacer and a percentage - this should be easy to change if so. I'll defer this until the question about the RTL brush stroke is resolved, since it may be something that can be tackled together.
I'll try with fullscreen, good point! |
It was indeed what you're describing here 👍 |
I found the root cause of this issue and added a fix on my PR. See comment: #17117 (comment) @mkevins Can you please add the same change to this PR, and perhaps target the feature branch Thanks in advance 🙇 |
Good idea Ovi! I've changed the merge target, and added the crash fix to this PR as well. Also, I've updated the feature branch to be up to date with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @mkevins 👏
Thank you for wrangling this 👍
Everything works as described, I only found two small issues.
-
The appbar appears behind the transparent statusbar on the
Connect to your WordPress sitescreen:

I presume the same fix that was done here would work on this PR. That is moving the code that clears the
FLAG_LAYOUT_NO_LIMITSflag toonPause.
More info in this comment. -
I noticed a rather unwanted effect when tapping the transparent
Looking to create a new site?button.
Preview:
transparent_button_issue.mp4
|
I'll be continuing on the great work started by Matthew to get this PR ready, as discussed via dm 🙇 |
Note: it is possible that this will need to be optimized.
This will likely need some modifications. Initially, I attempted to import the vector image for the brush stroke, but the paths were too long, and could not be parsed during compilation. I rasterize them in this commit, but this may not work well in various screen sizes / orientations.
Note: this adds a significant size to the apk (~744k), so it is possible that we may opt to forgo this. If so, this branch can be rebased to remove this from the repo history as well (instead of reverting).
This helps prevent bloating the Jetpack app with unused resources.
This is to avoid having the brushstroke visible beneath the icon in scenarios where it overlaps. This also sets a circle clip shape for the icon so that the background color doesn't create a rectangular artifact on top of the brush stroke background.
Using a Canvas seems to be necessary here to avoid "pre-clipping" the image to the container size, which would otherwise leave a small gap when offsetting by a negative value on the y-axis.
This seems better than using arbitrarily chosen dimensions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've tested on an older Huawei P9 (Android 7.0) and get the following error while starting up the WordPress app:
java.lang.IllegalStateException: Cannot create Typeface from ResourceFont(resId=2131296256, weight=FontWeight(weight=400),
(full stack trace).
I'll investigate further and report back.
Edit:
Commenting out the custom font assignment prevents the crash. My guess is that this is a memory or compose issue on older devices.
The brush does not load at all on the background though. I'm not sure yet if this is due to the screen size or the resource fails to load silently 🤔

2e5eb57 to
b6803e2
Compare
Generated by 🚫 dangerJS |
…Huawei Android 7 issue)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @mkevins and @ovitrif 👍
I've retested with the latest changes both on my Pixel 5 (Android 13) and my Huawei P9 (Android 7) and the issues reported before are fixed. The code LGTM too 🎉
As discussed the CI check failures will be handled separately from another PR also pointing on feature/revamp-landing-screen
|
Thank you for addressing the remaining issues on this one Ovi! And thanks for testing and reviewing Antonis! 🎉 |

Fixes #17072
Description
This PR implements the WordPress landing screen redesign behind the respective feature flag. The approach is to create a revamped fragment to co-exist with the current implementation, and use this new fragment conditionally (based on the flag) from the login activity. When the feature flag is turned on by default, the older flow can be removed.
This design is implemented via Jetpack Compose,
and a few things are not complete. To keep scope minimal for each PR, we can leverage the feature flag to develop partially complete UI with more granular feedback.Since toggling the feature flag requires login, and navigating to this screen requires being logged out, it can be cumbersome to go back and forth between implementations. To make this easier, it is useful to apply the following patch:
Hard-coded flag patch
Former Solved Details
I also wired up one of the buttons to the login flow, because without the above hack, it isn't possible to toggle the feature flag off once logged out otherwise. The button functionality is scoped for a later PR, so this is an exception for practicality.Update: Both login buttons were updated to have the expected functionality.
Questions
While this PR is still in draft, there are a couple of questions worth discussing before finalizing it:
Note:
The text for these buttons is based on future designs, and may possibly be reverted for the first iteration. I have deferred this decision for now.Update: This has been reverted back to the former texts.
Screenshots - Login Prologue
To test:
Precondition: Enable the feature flag (either hard-coding via the patch above, or toggling within the app - or both)
Login:
Precondition: Disable the feature flag
Jetpack:
The Jetpack flavor of the app should be unaffected by these changes.
Regression Notes
Potential unintended areas of impact
WordPress and Jetpack login screen
What I did to test those areas of impact (or what existing automated tests I relied on)
Manual testing
What automated tests I added (or what prevented me from doing so)
This PR only adds UI changes (under a feature flag).
PR submission checklist:
RELEASE-NOTES.txtif necessary.