Skip to content

CMM-2301: Always show the Me row when the bottom nav is hidden - #23213

Open
nbradbury wants to merge 6 commits into
trunkfrom
issue/CMM-2301-wp-me-hidden
Open

CMM-2301: Always show the Me row when the bottom nav is hidden#23213
nbradbury wants to merge 6 commits into
trunkfrom
issue/CMM-2301-wp-me-hidden

Conversation

@nbradbury

@nbradbury nbradbury commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Description

Fixes CMM-2301.

In the WordPress app, signing in to a self-hosted site with an application password could leave the user with no route to the Me screen at all — no Account Settings, App Settings, Experimental Features or Help & Support. The bottom nav is hidden by design once Jetpack features are removed, and the My Site "Me" row that replaces it was never added.

Testing instructions

Me is reachable on WPAndroid with the nav hidden:

  1. Sign in to a self-hosted site using an application password
  • My Site shows a Me row under Manage.
  1. Tap it.
  • Me screen opens with a "Me" title and a back arrow

Jetpack app regression:

  1. Open the Jetpack app on any site.
  • No Me row in My Site; the bottom nav Me tab is unchanged.

Before and after shot

wp

The Me row in My Site exists to replace the bottom navigation's Me tab
when that nav is hidden, but it was gated on site capabilities instead.
Both flags it checked are permanently false for sites added over the
application-password / WP-API path: hasCapabilityManageOptions is only
populated from the WP.com REST response, and isSelfHostedAdmin only from
XML-RPC wp.getUsersBlogs. Such users had no route to Me at all, and so no
Account Settings, App Settings, Experimental Features or Help & Support.

Gate the row on exactly the condition WPMainActivity uses to hide the nav.
Me is account-level, so site capabilities play no part. This also drops the
duplicate row that appeared for self-hosted admins while the nav was still
visible, which b4450f8 already intended to remove.

MeFragment now gates its toolbar on the host activity rather than the
removal phase, so it can't render a title-less, back-button-less screen.
@dangermattic

dangermattic commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator
1 Warning
⚠️ PR is not assigned to a milestone.

Generated by 🚫 Danger

@wpmobilebot

wpmobilebot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in Jetpack Android by scanning the QR code below to install the corresponding build.

App NameJetpack Android
Build TypeDebug
Versionpr23213-5b97806
Build Number1498
Application IDcom.jetpack.android.prealpha
Commit5b97806
Installation URL2itepgedru0b0
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@wpmobilebot

wpmobilebot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

App Icon📲 You can test the changes from this Pull Request in WordPress Android by scanning the QR code below to install the corresponding build.

App NameWordPress Android
Build TypeDebug
Versionpr23213-5b97806
Build Number1498
Application IDorg.wordpress.android.prealpha
Commit5b97806
Installation URL3ef4gd5nvmdio
Automatticians: You can use our internal self-serve MC tool to give yourself access to those builds if needed.

@codecov

codecov Bot commented Aug 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 37.90%. Comparing base (9f0065b) to head (5b97806).

Additional details and impacted files
@@           Coverage Diff           @@
##            trunk   #23213   +/-   ##
=======================================
  Coverage   37.90%   37.90%           
=======================================
  Files        2347     2347           
  Lines      127732   127728    -4     
  Branches    17767    17763    -4     
=======================================
+ Hits        48411    48419    +8     
+ Misses      75355    75343   -12     
  Partials     3966     3966           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Document why buildMeItemIfAvailable needs no explicit Jetpack app check:
getCurrentPhase() returns null there, so shouldRemoveJetpackFeatures() is
always false. The dependency was invisible at the call site once the
explicit guard was removed.

Resolve the MeActivity host once instead of calling requireActivity()
twice with a redundant cast, which leaves the AppCompatActivity import
unused.

Drop the release notes entry so this PR doesn't touch the file.
Compress the KDoc paragraph on the implicit Jetpack app exclusion, drop a
test comment that described a scenario the test can't exercise now that
buildMeItemIfAvailable takes no site, and move the Me tests out of the
pages group so they sit after the site settings tests, matching the order
of the builder's own methods.
An unqualified [shouldRemoveJetpackFeatures] doesn't resolve from
SiteListItemBuilder — the method belongs to JetpackFeatureRemovalPhaseHelper,
and importing the class doesn't bring its members into scope.
@nbradbury
nbradbury marked this pull request as ready for review August 13, 2026 15:38
@nbradbury
nbradbury requested a review from adalpari August 13, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants