Skip to content

Conversation

@razvanlitianu
Copy link
Collaborator

@razvanlitianu razvanlitianu commented Jan 5, 2026

📜 Tickets

Jira ticket
Github issue

💡 Description

Changes
Adds brandRefresh onboarding variant with feature flag support
Adds 7 new PDF image assets for brand refresh (sync, trackers, theme variants, toolbar variants)
Adds Nimbus configuration for brand refresh onboarding cards using v148 localized strings

🎥 Demos

Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-01-12.at.12.52.05.mov
Before After
Demo

📝 Checklist

  • I filled in the ticket numbers and a description of my work
  • I updated the PR name to follow our PR naming guidelines
  • I ensured unit tests pass and wrote tests for new code
  • If working on UI, I checked and implemented accessibility (Dynamic Text and VoiceOver)
  • If adding telemetry, I read the data stewardship requirements and will request a data review
  • If adding or modifying strings, I read the guidelines and will request a string review from l10n
  • If needed, I updated documentation and added comments to complex code

@mergify
Copy link
Contributor

mergify bot commented Jan 5, 2026

This pull request has conflicts when rebasing. Could you fix it @razvanlitianu? 🙏

1 similar comment
@mergify
Copy link
Contributor

mergify bot commented Jan 5, 2026

This pull request has conflicts when rebasing. Could you fix it @razvanlitianu? 🙏

@razvanlitianu razvanlitianu force-pushed the rlitianu/onboarding-brand-refresh-v148-config branch 2 times, most recently from c66cf0e to ac113ed Compare January 5, 2026 11:46
@razvanlitianu razvanlitianu force-pushed the rlitianu/onboarding-brand-refresh-v148-config branch from 073c10f to e01d3d1 Compare January 5, 2026 14:03
@razvanlitianu razvanlitianu changed the title Rlitianu/onboarding brand refresh v148 config Add FXIOS-14451 #31297 Configure brand resfresh onboarding Jan 5, 2026
- Change Terms of Service button action from syncSignIn to endOnboarding
- Add documentation for onboarding variant priority logic
- Set should-use-brand-refresh-configuration to false by default
@razvanlitianu razvanlitianu marked this pull request as ready for review January 12, 2026 10:53
@razvanlitianu razvanlitianu requested a review from a team as a code owner January 12, 2026 10:53
Copy link
Collaborator

@FilippoZazzeroni FilippoZazzeroni left a comment

Choose a reason for hiding this comment

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

Hi @razvanlitianu LGTM only a question, do we need to add all the images back for the brand refresh variant, i see expect for the sync card that the images are the same as japan onboarding, couldn't we add just the only one different ?

case .themeLightBrandRefresh: return ImageIdentifiers.Onboarding.MultipleChoiceButtonImages.themeLightBrandRefresh
case .toolbarTopBrandRefresh: return ImageIdentifiers.Onboarding.MultipleChoiceButtonImages.toolbarTopBrandRefresh
case .toolbarBottomBrandRefresh:
return ImageIdentifiers.Onboarding.MultipleChoiceButtonImages.toolbarBottomBrandRefresh
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: can we put it on the same line like the other cases

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hey @FilippoZazzeroni it fails the Swiftlint check so that's why it is a bit off.

@razvanlitianu
Copy link
Collaborator Author

Hi @razvanlitianu LGTM only a question, do we need to add all the images back for the brand refresh variant, i see expect for the sync card that the images are the same as japan onboarding, couldn't we add just the only one different ?

So technically no. I was doing this for consistency but I see how it might actually increase the app size. I will take a second look and see what can be reused.

@FilippoZazzeroni
Copy link
Collaborator

FilippoZazzeroni commented Jan 12, 2026

Hi @razvanlitianu LGTM only a question, do we need to add all the images back for the brand refresh variant, i see expect for the sync card that the images are the same as japan onboarding, couldn't we add just the only one different ?

So technically no. I was doing this for consistency but I see how it might actually increase the app size. I will take a second look and see what can be reused.

Thanks very much @razvanlitianu 😃

@razvanlitianu
Copy link
Collaborator Author

@mergify rebase

@mergify
Copy link
Contributor

mergify bot commented Jan 12, 2026

rebase

❌ Base branch update has failed

Details

Git reported the following error:

Rebasing (1/4)
Auto-merging firefox-ios/Client/Coordinators/Launch/LaunchCoordinator.swift
CONFLICT (content): Merge conflict in firefox-ios/Client/Coordinators/Launch/LaunchCoordinator.swift
Auto-merging firefox-ios/Client/TermsOfServiceManager.swift
CONFLICT (content): Merge conflict in firefox-ios/Client/TermsOfServiceManager.swift
error: could not apply e01d3d19d... Add brand refresh onboarding configuration with v2 strings
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply e01d3d19d... Add brand refresh onboarding configuration with v2 strings

… and Brand Refresh variants

- Reuse Japan theme and toolbar images for Brand Refresh variant (images are identical)
- Keep trackers-brand-refresh and sync-with-icons-brand-refresh separate (variant-specific)
- Remove duplicate Brand Refresh asset files (~1.5MB reduction)
- Update FML configuration to reference shared images
- Remove unused ImageIdentifiers constants and enum case handlers
- Update descriptions to clarify which images are shared vs variant-specific
@mobiletest-ci-bot
Copy link

mobiletest-ci-bot commented Jan 13, 2026

Messages
📖 Project coverage: 38.21%

🥇 Perfect PR size

Smaller PRs are easier to review. Thanks for making life easy for reviewers! ✨

✅ Per-file coverage

All changed files meet the threshold of 35.0%.

Client.app: Coverage: 37.28

File Coverage
TermsOfServiceManager.swift 34.23% ⚠️
NimbusOnboardingKitFeatureLayer.swift 98.06%
NimbusOnboardingFeatureLayerProtocol.swift 97.33%
IntroScreenManager.swift 96.43%
NimbusFlaggableFeature.swift 95.77%
NimbusFeatureFlagLayer.swift 76.56%

Generated by 🚫 Danger Swift against b643be4

Copy link
Collaborator

@FilippoZazzeroni FilippoZazzeroni left a comment

Choose a reason for hiding this comment

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

LGTM @razvanlitianu 😃

@@ -1 +1 @@
APP_VERSION = 147.1
APP_VERSION = 147.2
Copy link
Collaborator

Choose a reason for hiding this comment

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

nit: we can remove this file

@razvanlitianu razvanlitianu merged commit 535b980 into main Jan 13, 2026
10 checks passed
@razvanlitianu razvanlitianu deleted the rlitianu/onboarding-brand-refresh-v148-config branch January 13, 2026 09:32
@github-actions
Copy link
Contributor

🚀 PR merged to main, targeting version: 147.2

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.

4 participants