Skip to content

Commit 7fa20f5

Browse files
Merge branch 'main' into fix/73417
2 parents 0c59c4c + 333401e commit 7fa20f5

296 files changed

Lines changed: 5669 additions & 2701 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/Accessibility.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ Which of our officially supported platforms is this issue occurring on? Please o
4343
- [ ] iOS: mWeb Chrome
4444
- [ ] Windows: Chrome
4545
- [ ] MacOS: Chrome / Safari
46-
- [ ] MacOS: Desktop
46+
47+
## Screenshots/Videos
4748

4849
**Version Number:**
4950
**Reproducible in staging?:**

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ jobs:
355355
needs: prep
356356
runs-on: macos-15-xlarge
357357
env:
358-
DEVELOPER_DIR: /Applications/Xcode_16.4.0.app/Contents/Developer
358+
DEVELOPER_DIR: /Applications/Xcode_26.0.app/Contents/Developer
359359
SHOULD_BUILD_APP: ${{ github.ref == 'refs/heads/staging' || fromJSON(needs.prep.outputs.IS_CHERRY_PICK) }}
360360
steps:
361361
- name: Checkout

.github/workflows/remote-build-android.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,29 @@ jobs:
5959
variant: ${{ matrix.variant }}
6060
rock-build-extra-params: '--extra-params -PreactNativeArchitectures=arm64-v8a,x86_64'
6161
comment-bot: false
62+
63+
- name: Download Rock artifact
64+
env:
65+
ARTIFACT_URL: ${{ env.ARTIFACT_URL }}
66+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
67+
run: |
68+
echo "Downloading artifact from: $ARTIFACT_URL"
69+
curl -L \
70+
-H "Authorization: Bearer $GITHUB_TOKEN" \
71+
-H "Accept: application/octet-stream" \
72+
"$ARTIFACT_URL" -o artifact.zip
73+
unzip artifact.zip -d artifact_contents
74+
75+
- name: Find APK
76+
run: |
77+
APK=$(find artifact_contents -type f -name "*.apk" | head -n 1)
78+
if [ -z "$APK" ]; then
79+
echo "No APK found in artifact"
80+
exit 1
81+
fi
82+
echo "APK_PATH=$APK" >> "$GITHUB_ENV"
83+
echo "Using APK: $APK"
84+
85+
- name: Verify ELF alignment
86+
run: |
87+
scripts/check-elf-alignment.sh "$APK_PATH"

.github/workflows/test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ jobs:
1717
runs-on: ubuntu-latest
1818
env:
1919
CI: true
20-
NODE_OPTIONS: --max_old_space_size=8192
20+
NODE_OPTIONS: "--experimental-vm-modules --max-old-space-size=8192"
2121
strategy:
2222
fail-fast: false
2323
matrix:
24-
chunk: [ 1, 2, 3, 4 ]
24+
chunk: [1, 2, 3, 4, 5, 6, 7, 8]
2525
name: test (job ${{ fromJSON(matrix.chunk) }})
2626
steps:
2727
- name: Checkout
@@ -44,7 +44,7 @@ jobs:
4444
key: ${{ runner.os }}-jest
4545

4646
- name: Jest tests
47-
run: NODE_OPTIONS="$NODE_OPTIONS --experimental-vm-modules" npm test -- --silent --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --maxWorkers=4 --coverage --coverageDirectory=coverage/shard-${{ matrix.chunk }}
47+
run: npm test -- --silent --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --maxWorkers=2 --coverage --coverageDirectory=coverage/shard-${{ matrix.chunk }}
4848

4949
- name: Upload coverage to Codecov (PRs - tokenless)
5050
if: ${{ github.event_name == 'pull_request' }}

.github/workflows/verifyHybridApp.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ jobs:
113113
name: Verify iOS HybridApp builds on main
114114
runs-on: macos-15-xlarge
115115
env:
116-
DEVELOPER_DIR: /Applications/Xcode_16.4.0.app/Contents/Developer
116+
DEVELOPER_DIR: /Applications/Xcode_26.0.app/Contents/Developer
117117
# Only run on pull requests that are *not* on a fork
118118
if: ${{ !github.event.pull_request.head.repo.fork && github.event_name == 'pull_request' }}
119119
steps:

Mobile-Expensify

__mocks__/Illustrations.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ const CreditCardsNew = 'CreditCardsNew';
2121
const CreditCardsNewGreen = 'CreditCardsNewGreen';
2222
const InvoiceBlue = 'InvoiceBlue';
2323
const LaptopWithSecondScreenAndHourglass = 'LaptopWithSecondScreenAndHourglass';
24+
const RunningTurtle = 'RunningTurtle';
2425
const LockOpen = 'LockOpen';
2526
const Luggage = 'Luggage';
2627
const MoneyIntoWallet = 'MoneyIntoWallet';
@@ -29,6 +30,7 @@ const ConciergeBubble = 'ConciergeBubble';
2930
const TreasureChest = 'TreasureChest';
3031
const ThumbsUpStars = 'ThumbsUpStars';
3132
const Hands = 'Hands';
33+
const Hand = 'Hand';
3234
const SmartScan = 'SmartScan';
3335
const Hourglass = 'Hourglass';
3436
const CommentBubbles = 'CommentBubbles';
@@ -56,6 +58,9 @@ const Binoculars = 'Binoculars';
5658
const CompanyCard = 'CompanyCard';
5759
const ReceiptUpload = 'ReceiptUpload';
5860
const ExpensifyCardIllustration = 'ExpensifyCardIllustration';
61+
const ExpensifyCardImage = 'ExpensifyCardImage';
62+
const MultiScan = 'MultiScan';
63+
const Shutter = 'Shutter';
5964
const SplitBill = 'SplitBill';
6065
const PiggyBank = 'PiggyBank';
6166
const Pillow = 'Pillow';
@@ -134,6 +139,7 @@ export {
134139
CreditCardsNewGreen,
135140
InvoiceBlue,
136141
LaptopWithSecondScreenAndHourglass,
142+
RunningTurtle,
137143
LockOpen,
138144
Luggage,
139145
MoneyIntoWallet,
@@ -142,6 +148,7 @@ export {
142148
TreasureChest,
143149
ThumbsUpStars,
144150
Hands,
151+
Hand,
145152
SmartScan,
146153
Hourglass,
147154
CommentBubbles,
@@ -169,6 +176,9 @@ export {
169176
CompanyCard,
170177
ReceiptUpload,
171178
ExpensifyCardIllustration,
179+
ExpensifyCardImage,
180+
MultiScan,
181+
Shutter,
172182
SplitBill,
173183
PiggyBank,
174184
Pillow,

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ android {
114114
minSdkVersion rootProject.ext.minSdkVersion
115115
targetSdkVersion rootProject.ext.targetSdkVersion
116116
multiDexEnabled rootProject.ext.multiDexEnabled
117-
versionCode 1009026001
118-
versionName "9.2.60-1"
117+
versionCode 1009026105
118+
versionName "9.2.61-5"
119119
// Supported language variants must be declared here to avoid from being removed during the compilation.
120120
// This also helps us to not include unnecessary language variants in the APK.
121121
resConfigs "en", "es"

cspell.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@
235235
"falso",
236236
"favicons",
237237
"Ferroalloy",
238+
"firebaselogging",
238239
"firstname",
239240
"Fiscale",
240241
"flac",

docs/articles/expensify-classic/expenses/Add-an-expense.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ Track business travel with distance-based expenses using one of these methods. M
7272
2. Under **Distance**, select:
7373
- **Manually create** – enter miles and rate. Tap **More options** for category, description, report.
7474
- **Odometer** – enter pre/post trip readings and rate. Tap **More options** to complete.
75+
- **Start GPS** – Tap **Start** at the start of your trip, and tap **Stop** when you reach your destination. For best results, keep the Expensify app open.
7576
3. Tap **Save**.
7677

7778
## Available options for tracking distance
@@ -81,7 +82,7 @@ Track business travel with distance-based expenses using one of these methods. M
8182
- **Mobile app**
8283
- **Manually create** – enter miles and rate.
8384
- **Odometer** – log before/after readings.
84-
- **Start GPS**currently unavailable.
85+
- **Start GPS**automatically tracks your mileage using GPS.
8586

8687
---
8788

0 commit comments

Comments
 (0)