Change 2FA recovery code filename#89854
Conversation
…if saving fails on android
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid_Native.mov |
|
@chuckdries, you have a couple of bot comments. Can you take a look and address them? |
|
@Gonals done! |
|
🚧 @Gonals has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/Gonals in version: 9.3.74-7 🚀
Bundle Size Analysis (Sentry): |
|
Yes, help site changes are required. PR #89854 renames the 2FA recovery codes download file from Draft PR created: #90802 Files updated:
|
|
🚀 Deployed to production by https://github.com/Beamanator in version: 9.3.74-7 🚀
|




Explanation of Change
When the user downloads their 2FA recovery codes, name the file
DO-NOT-DELETE_Expensify-2FA-RecoveryCodes.txt.The caveat here is Android. Per #23094, after you download 32 copies of the exact same file name, Android starts preventing you from saving the file, which is why we had decided to append the date and time to every file we create. However, for this use case, we want the file name to be exact if possible (so it'll exactly match what it says in the follow-up concierge message we'll send in release 3). But at the same time, we don't want this to ever fail. Thus, when
appendTimestampis false, we attempt to save the file with its normal name, and append the date only if we have to.Fixed Issues
$ #89851
PROPOSAL:
Tests
Web, Android happy path
DO-NOT-DELETE_Expensify-2FA-RecoveryCodes.txtAndroid special case
DO-NOT-DELETE_Expensify-2FA-RecoveryCodes (2).txtetc until the last one, which should have today's date at the end.iOS
DO-NOT-DELETE_Expensify-2FA-RecoveryCodes.txtis saved to your files appOffline tests
N/A
QA Steps
Same as tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
recovery.codes.file.android.mp4
iOS: Native
recovery.codes.file.ios.mp4
iOS: mWeb Safari
recovery.codes.file.ios.safari.mp4
MacOS: Chrome / Safari
recover.codes.file.chrome.macos.mp4