iOS: Localize NTP-after-idle settings strings + escape hatch tab switcher pixel#4787
Conversation
f61b81f to
21e2760
Compare
…atch tab switcher pixel
21e2760 to
0d631a9
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0d631a9. Configure here.
| } | ||
|
|
||
| func newTabPageDidRequestTabSwitcher(_ controller: NewTabPageViewController) { | ||
| ntpAfterIdleInstrumentation.escapeHatchTabSwitcherTapped() |
There was a problem hiding this comment.
Escape hatch pixel missing from unified input path
Medium Severity
The new escapeHatchTabSwitcherTapped() pixel is only fired from newTabPageDidRequestTabSwitcher, which handles taps on the NTP's escape hatch pill. However, the same escape hatch pill also appears in the AI chat / unified input context via configureUnifiedInputEscapeHatch, where the onTabSwitcherTapped closure at line 1629 calls showTabSwitcher() directly without firing ntpAfterIdleInstrumentation.escapeHatchTabSwitcherTapped(). This means the pixel undercounts when the user taps the escape hatch tab switcher pill while in the expanded omnibar/AI chat state after idle return.
Please tell me if this was useful or not with a 👍 or 👎.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 0d631a9. Configure here.
🌍 Smartling Translation Job CreatedJob ID: Next:
|


Task/Issue URL: https://app.asana.com/0/0/1214420688003519
Tech Design URL:
CC:
Description
Two small follow-ups to #4669, kept on a separate branch so translations can be requested without blocking the parent PR.
Switched to `NSLocalizedString` and added matching entries to `en.lproj/Localizable.strings` so they're picked up by the translation pipeline.
Testing Steps
Impact and Risks
Low. Localization change is purely additive (no behavioral effect). The new pixel is in the existing daily-and-count instrumentation pipeline.
What could go wrong?
Quality Considerations
Notes to Reviewer
This stacks on top of #4669; merge order should be #4669 first, then this.
Internal references:
Definition of Done | Engineering Expectations | Tech Design Template
Note
Low Risk
Low risk: primarily localization key plumbing and a new analytics pixel; behavior change is limited to firing an additional event when opening the tab switcher from the escape hatch.
Overview
Adds a new NTP-after-idle analytics event for tapping the escape-hatch tab switcher pill (
m_ntp_after_idle_escape_hatch_tab_switcher_tapped_after_idle), wiring it throughNTPAfterIdleInstrumentation.escapeHatchTabSwitcherTapped()and firing it fromMainViewController.newTabPageDidRequestTabSwitcher(_:)with updated pixel definitions and tests.Updates after-inactivity settings copy to be fully localized by switching previously
NotLocalizedStringentries toNSLocalizedString, addingen.lprojstring keys, and renaming the idle interval case from.alwaysto.nonewith corresponding footer text logic and test updates.Reviewed by Cursor Bugbot for commit 0d631a9. Bugbot is set up for automated code reviews on this repo. Configure here.