Problem
Receipt capture currently shoots at 12 MP and uses takePhoto on iOS even in the common no-flash portrait case. The high resolution increases capture time, thumbnail generation cost, memory pressure, and upload size — all for an image that only needs to be legible for SmartScan.
Solution
- Drop capture resolution from 12 MP to 6 MP — still plenty for receipt OCR while making capture, thumbnail generation, memory, and upload all cheaper
- Use
takeSnapshot on iOS for the no-flash portrait case (Android already does this), falling back to takePhoto when flash is on or in landscape
- Enable
video on the iOS camera platform-conditionally to support takeSnapshot
- Merge the now-identical iOS and Android capture files into a shared
index.ts
Issue Owner
Current Issue Owner: @mallenexpensify
Issue Owner
Current Issue Owner: @mallenexpensify
Problem
Receipt capture currently shoots at 12 MP and uses
takePhotoon iOS even in the common no-flash portrait case. The high resolution increases capture time, thumbnail generation cost, memory pressure, and upload size — all for an image that only needs to be legible for SmartScan.Solution
takeSnapshoton iOS for the no-flash portrait case (Android already does this), falling back totakePhotowhen flash is on or in landscapevideoon the iOS camera platform-conditionally to supporttakeSnapshotindex.tsIssue Owner
Current Issue Owner: @mallenexpensifyIssue Owner
Current Issue Owner: @mallenexpensify