Skip to content

Add profile sharing name entry and empty preview page#5299

Draft
geekygecko wants to merge 1 commit into
mainfrom
philip/profile-share-name
Draft

Add profile sharing name entry and empty preview page#5299
geekygecko wants to merge 1 commit into
mainfrom
philip/profile-share-name

Conversation

@geekygecko
Copy link
Copy Markdown
Member

@geekygecko geekygecko commented May 13, 2026

Description

This change adds a page for a user to set their display name for their shared profile. The idea is this doesn't have to be the user's actual name if they want to keep some privacy.

I will add the analytics events when the flow is finished.

Fixes https://linear.app/a8c/issue/POC-613/android-profile-sharing-add-display-name-page

Testing Instructions

  1. Sign in
  2. Go to the Profile tab -> Share button
  3. ✅ Verify you can enter a display name
  4. Tap continue
  5. ✅ Verify the name is shown on the page

Screenshots

Light Dark
Screenshot_20260513_145512 Screenshot_20260513_145532

Checklist

  • If this is a user-facing change, I have added an entry in CHANGELOG.md
  • Ensure the linter passes (./gradlew spotlessApply to automatically apply formatting/linting)
  • I have considered whether it makes sense to add tests for my changes
  • All strings that need to be localized are in modules/services/localization/src/main/res/values/strings.xml
  • Any jetpack compose components I added or changed are covered by compose previews
  • I have updated (or requested that someone edit) the spreadsheet to reflect any new or changed analytics.

I have tested any UI changes...

  • with different themes
  • with a landscape orientation
  • with the device set to have a large display and font size
  • for accessibility with TalkBack

Copilot AI review requested due to automatic review settings May 13, 2026 04:20
@geekygecko geekygecko added [Type] Feature Adding a new feature. [Area] Sharing labels May 13, 2026
@geekygecko geekygecko added this to the 8.13 milestone May 13, 2026
@dangermattic
Copy link
Copy Markdown
Collaborator

1 Error
🚫 Please add tests for class ShareProfileViewModel (or add unit-tests-exemption label to ignore this).
1 Message
📖 This PR is still a Draft: some checks will be skipped.

Generated by 🚫 Danger

@wpmobilebot
Copy link
Copy Markdown
Collaborator

Project manifest changes for app

The following changes in the app's merged AndroidManifest.xml file were detected (build variant: release):

--- ./build/reports/diff_manifest/app/release/base_manifest.txt	2026-05-13 04:23:00.134857336 +0000
+++ ./build/reports/diff_manifest/app/release/head_manifest.txt	2026-05-13 04:23:02.374873092 +0000
@@ -853,6 +853,7 @@
         <activity
             android:name="au.com.shiftyjelly.pocketcasts.account.AccountActivity"
             android:windowSoftInputMode="adjustResize" />
+        <activity android:name="au.com.shiftyjelly.pocketcasts.profile.sharing.ShareProfileActivity" />
 
         <service
             android:name="au.com.shiftyjelly.pocketcasts.profile.accountmanager.PocketCastsAuthenticatorService"

Go to https://buildkite.com/automattic/pocket-casts-android/builds/16598/canvas?sid=019e1f90-c778-41b7-8f92-9187c44f2e73, click on the Artifacts tab and audit the files.

@wpmobilebot
Copy link
Copy Markdown
Collaborator

Project manifest changes for wear

The following changes in the wear's merged AndroidManifest.xml file were detected (build variant: release):

--- ./build/reports/diff_manifest/wear/release/base_manifest.txt	2026-05-13 04:23:10.434931754 +0000
+++ ./build/reports/diff_manifest/wear/release/head_manifest.txt	2026-05-13 04:23:11.874942235 +0000
@@ -229,6 +229,7 @@
         <activity
             android:name="au.com.shiftyjelly.pocketcasts.account.AccountActivity"
             android:windowSoftInputMode="adjustResize" />
+        <activity android:name="au.com.shiftyjelly.pocketcasts.profile.sharing.ShareProfileActivity" />
 
         <service
             android:name="au.com.shiftyjelly.pocketcasts.profile.accountmanager.PocketCastsAuthenticatorService"

Go to https://buildkite.com/automattic/pocket-casts-android/builds/16598/canvas?sid=019e1f90-c778-41b7-8f92-9187c44f2e73, click on the Artifacts tab and audit the files.

@wpmobilebot
Copy link
Copy Markdown
Collaborator

Project manifest changes for automotive

The following changes in the automotive's merged AndroidManifest.xml file were detected (build variant: release):

--- ./build/reports/diff_manifest/automotive/release/base_manifest.txt	2026-05-13 04:23:20.035000838 +0000
+++ ./build/reports/diff_manifest/automotive/release/head_manifest.txt	2026-05-13 04:23:21.755012810 +0000
@@ -181,6 +181,7 @@
         <activity
             android:name="au.com.shiftyjelly.pocketcasts.account.AccountActivity"
             android:windowSoftInputMode="adjustResize" />
+        <activity android:name="au.com.shiftyjelly.pocketcasts.profile.sharing.ShareProfileActivity" />
 
         <service
             android:name="au.com.shiftyjelly.pocketcasts.profile.accountmanager.PocketCastsAuthenticatorService"

Go to https://buildkite.com/automattic/pocket-casts-android/builds/16598/canvas?sid=019e1f90-c778-41b7-8f92-9187c44f2e73, click on the Artifacts tab and audit the files.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds the initial scaffolding for the Profile Sharing wizard (name entry + placeholder preview) under modules/features/profile/.../sharing, and wires the Profile header Share button to launch it. This mirrors the existing podcast list sharing flow structure and is intended to be feature-flagged behind Feature.PROFILE_SHARING.

Changes:

  • Introduces ShareProfileActivity / ShareProfileFragment hosting a Compose NavHost for the wizard steps.
  • Adds ShareProfileNamePage (display-name entry + Continue CTA) and ShareProfilePreviewPage (placeholder preview rendering the entered name).
  • Adds a ShareProfileViewModel with StateFlow-backed state to persist the display name across navigation/config changes, plus new localized strings and the Profile entry point wiring.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
modules/services/localization/src/main/res/values/strings.xml Adds new localized strings for the profile sharing wizard UI.
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/sharing/ShareProfileViewModel.kt Adds ViewModel state to retain the entered display name across steps.
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/sharing/ShareProfilePreviewPage.kt Adds placeholder preview page UI for the wizard.
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/sharing/ShareProfileNamePage.kt Adds the display name entry screen UI and Continue CTA.
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/sharing/ShareProfileFragment.kt Hosts the Compose navigation flow and connects pages to ViewModel + navigation.
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/sharing/ShareProfileActivity.kt Adds the activity shell that hosts the fragment.
modules/features/profile/src/main/java/au/com/shiftyjelly/pocketcasts/profile/ProfileFragment.kt Wires the existing Profile header Share click to launch ShareProfileActivity.
modules/features/profile/src/main/AndroidManifest.xml Registers ShareProfileActivity in the profile feature manifest.

Comment on lines +101 to +105
RowButton(
text = stringResource(LR.string.navigation_continue),
enabled = trimmedName.isNotEmpty(),
onClick = { onContinueClick() },
)
onDisplayNameChange = { displayName ->
viewModel.setDisplayName(displayName)
},
onContinueClick = {
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.

4 participants