[HOLD for payment 2024-12-07] Theme - App reverts to using device theme settings after relogin
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Version Number: 9.0.67-0 Reproducible in staging?: Y Reproducible in production?: Y If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: Y If this was caught during regression testing, add the test name, ID and link from TestRail: N/A Email or phone of affected tester (no customers): [email protected]
Issue found when executing PR https://github.com/Expensify/App/pull/52392
Action Performed:
- Sign into the hybrid app
- Navigate to Settings > preferences > Theme and change the theme to either dark or light
- Sign out and re login with the same account
Expected Result:
The theme is preserved
Actual Result:
Theme setting reverts to using the device settings
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
- [ ] Android: Standalone
- [ ] Android: HybridApp
- [ ] Android: mWeb Chrome
- [x] iOS: Standalone
- [x] iOS: HybridApp
- [ ] iOS: mWeb Safari
- [ ] MacOS: Chrome / Safari
- [ ] MacOS: Desktop
Screenshots/Videos
Add any screenshot/video evidence
https://github.com/user-attachments/assets/e630bab8-47fa-4064-8126-4e02c96d9488
Upwork Automation - Do Not Edit
- Upwork Job URL: https://www.upwork.com/jobs/~021861738020759297056
- Upwork Job ID: 1861738020759297056
- Last Price Increase: 2024-11-27
Issue Owner
Current Issue Owner: @trjExpensify
Triggered auto assignment to @trjExpensify (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.
I can reproduce this on the NewDot standalone iOS app, so it's not only HybridApp as stated in the OP. That said, I feel like we always revert back to the device setting default after a sign-out/sign-in. I can't recall a time where this preference was stored and persisted after a sign-out. @grgia can you hipcheck me on that?
We store the preference if it's set in an NVP that's device-specific and persists when logging out @trjExpensify
Oh cool, bug then! Reproducible on both the standalone and HybridApp.
Job added to Upwork: https://www.upwork.com/jobs/~021861738020759297056
Triggered auto assignment to Contributor-plus team member for initial proposal review - @ikevin127 (External)
For context, it should use the same pattern as nvp_preferredLocale
I went ahead and pushed a PR to fix this
Ah nice, amazing.
Reviewing label has been removed, please complete the "BugZero Checklist".
The solution for this issue has been :rocket: deployed to production :rocket: in version 9.0.68-7 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
- https://github.com/Expensify/App/pull/53206
If no regressions arise, payment will be issued on 2024-12-07. :confetti_ball:
For reference, here are some details about the assignees on this issue:
- @ikevin127 requires payment (Needs manual offer from BZ)
@ikevin127 @trjExpensify @ikevin127 The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]
BugZero Checklist:
- [x] [Contributor] Classify the bug:
Bug classification
Source of bug:
- [ ] 1a. Result of the original design (eg. a case wasn't considered)
- [x] 1b. Mistake during implementation
- [ ] 1c. Backend bug
- [ ] 1z. Other:
Where bug was reported:
- [ ] 2a. Reported on production
- [ ] 2b. Reported on staging (deploy blocker)
- [x] 2c. Reported on both staging and production
- [ ] 2d. Reported on a PR
- [ ] 2z. Other:
Who reported the bug:
- [ ] 3a. Expensify user
- [ ] 3b. Expensify employee
- [ ] 3c. Contributor
- [x] 3d. QA
- [ ] 3z. Other:
-
[x] [Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment: No specific offending PR as our issue's edge case was simply not considered during implementation.
-
[x] [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.
Link to discussion: N/A.
-
[x] [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.
-
[ ] [BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:
Regression Test Proposal
- Sign into the app.
- Navigate to Settings > Preferences > Theme and change the theme to either
DarkorLight(different than system default). - Sign out and re-login with the same account.
- Verify that the previously selected theme is persisted upon re-login.
Do we agree 👍 or 👎.
Payment Summary
- ROLE: @ikevin127 paid $(AMOUNT) via Upwork (LINK)
BugZero Checklist (@trjExpensify)
- [ ] I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
- [ ] I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants/1861738020759297056/hired)
- [ ] I have paid out the Upwork contracts or cancelled the ones that are incorrect
- [ ] I have verified the payment summary above is correct
cc @trjExpensify payment overdue, for visibility
Yeah, sorry man. Unfortunately if it falls on the weekend, I'll likely get to it on Monday.
Payment summary as follows:
- $250 to @ikevin127 for the C+ review
Regression test: https://github.com/Expensify/Expensify/issues/451646
Sent you an offer.
No worries, offer accepted and thank you!
Paid, closing!