App icon indicating copy to clipboard operation
App copied to clipboard

[HOLD for payment 2024-12-07] Theme - App reverts to using device theme settings after relogin

Open lanitochka17 opened this issue 1 year ago • 16 comments

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:

  1. Sign into the hybrid app
  2. Navigate to Settings > preferences > Theme and change the theme to either dark or light
  3. 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

View all open jobs on GitHub

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 OwnerCurrent Issue Owner: @trjExpensify

lanitochka17 avatar Nov 26 '24 21:11 lanitochka17

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.

melvin-bot[bot] avatar Nov 26 '24 21:11 melvin-bot[bot]

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?

trjExpensify avatar Nov 26 '24 22:11 trjExpensify

We store the preference if it's set in an NVP that's device-specific and persists when logging out @trjExpensify

grgia avatar Nov 27 '24 11:11 grgia

image

grgia avatar Nov 27 '24 11:11 grgia

Oh cool, bug then! Reproducible on both the standalone and HybridApp.

trjExpensify avatar Nov 27 '24 11:11 trjExpensify

Job added to Upwork: https://www.upwork.com/jobs/~021861738020759297056

melvin-bot[bot] avatar Nov 27 '24 11:11 melvin-bot[bot]

Triggered auto assignment to Contributor-plus team member for initial proposal review - @ikevin127 (External)

melvin-bot[bot] avatar Nov 27 '24 11:11 melvin-bot[bot]

For context, it should use the same pattern as nvp_preferredLocale

grgia avatar Nov 27 '24 11:11 grgia

I went ahead and pushed a PR to fix this

grgia avatar Nov 27 '24 12:11 grgia

Ah nice, amazing.

trjExpensify avatar Nov 27 '24 12:11 trjExpensify

Reviewing label has been removed, please complete the "BugZero Checklist".

melvin-bot[bot] avatar Nov 30 '24 13:11 melvin-bot[bot]

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)

melvin-bot[bot] avatar Nov 30 '24 13:11 melvin-bot[bot]

@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]

melvin-bot[bot] avatar Nov 30 '24 13:11 melvin-bot[bot]

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

  1. Sign into the app.
  2. Navigate to Settings > Preferences > Theme and change the theme to either Dark or Light (different than system default).
  3. Sign out and re-login with the same account.
  4. Verify that the previously selected theme is persisted upon re-login.

Do we agree 👍 or 👎.

ikevin127 avatar Nov 30 '24 22:11 ikevin127

Payment Summary

Upwork Job

  • 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

melvin-bot[bot] avatar Dec 07 '24 10:12 melvin-bot[bot]

cc @trjExpensify payment overdue, for visibility

ikevin127 avatar Dec 09 '24 04:12 ikevin127

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.

trjExpensify avatar Dec 09 '24 15:12 trjExpensify

No worries, offer accepted and thank you!

ikevin127 avatar Dec 09 '24 18:12 ikevin127

Paid, closing!

trjExpensify avatar Dec 10 '24 09:12 trjExpensify