Skip to content

Commit ff4079a

Browse files
committed
Merge branch 'main' into mkzie2-issue/55230
2 parents c2096d4 + c137167 commit ff4079a

File tree

218 files changed

+4195
-1532
lines changed

Some content is hidden

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

218 files changed

+4195
-1532
lines changed

.github/workflows/androidBump.yml

+7-2
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,14 @@ jobs:
2121
with:
2222
bundler-cache: true
2323

24-
- name: Decrypt json Google Play credentials
25-
run: gpg --batch --yes --decrypt --passphrase="${{ secrets.LARGE_SECRET_PASSPHRASE }}" --output android-fastlane-json-key.json android-fastlane-json-key.json.gpg
24+
- name: Install 1Password CLI
25+
uses: 1password/install-cli-action@v1
26+
27+
- name: Load files from 1Password
2628
working-directory: android/app
29+
env:
30+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
31+
run: op read "op://Mobile-Deploy-CI/android-fastlane-json-key.json/android-fastlane-json-key.json" --force --out-file ./android-fastlane-json-key.json
2732

2833
- name: Get status from Google Play and generate next rollout percentage
2934
id: checkAndroidStatus

.github/workflows/buildAndroid.yml

+7-2
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,14 @@ jobs:
8585
with:
8686
bundler-cache: true
8787

88-
- name: Decrypt keystore to sign the APK/AAB
89-
run: gpg --batch --yes --decrypt --passphrase="${{ secrets.LARGE_SECRET_PASSPHRASE }}" --output my-upload-key.keystore my-upload-key.keystore.gpg
88+
- name: Install 1Password CLI
89+
uses: 1password/install-cli-action@v1
90+
91+
- name: Load files from 1Password
9092
working-directory: android/app
93+
env:
94+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
95+
run: op read "op://Mobile-Deploy-CI/New Expensify my-upload-key.keystore/my-upload-key.keystore" --force --out-file ./my-upload-key.keystore
9196

9297
- name: Get package version
9398
id: getPackageVersion

.github/workflows/compareNDandODbuilds.yml

+11-4
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,13 @@ jobs:
5353
uses: 1password/install-cli-action@v1
5454

5555
- name: Load files from 1Password
56+
working-directory: android/app
5657
env:
5758
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
5859
run: |
59-
op document get --output ./upload-key.keystore upload-key.keystore
60-
op document get --output ./android-fastlane-json-key.json android-fastlane-json-key.json
60+
op read "op://Mobile-Deploy-CI/android-fastlane-json-key.json/android-fastlane-json-key.json" --force --out-file ./android-fastlane-json-key.json
61+
op read "op://Mobile-Deploy-CI/New Expensify my-upload-key.keystore/my-upload-key.keystore" --force --out-file ./my-upload-key.keystore
62+
6163
# Copy the keystore to the Android directory for Fullstory
6264
cp ./upload-key.keystore Mobile-Expensify/Android
6365
@@ -104,9 +106,14 @@ jobs:
104106
with:
105107
IS_HYBRID_BUILD: 'false'
106108

107-
- name: Decrypt keystore to sign the APK/AAB
108-
run: gpg --batch --yes --decrypt --passphrase="${{ secrets.LARGE_SECRET_PASSPHRASE }}" --output my-upload-key.keystore my-upload-key.keystore.gpg
109+
- name: Install 1Password CLI
110+
uses: 1password/install-cli-action@v1
111+
112+
- name: Load files from 1Password
109113
working-directory: android/app
114+
env:
115+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
116+
run: op read "op://Mobile-Deploy-CI/New Expensify my-upload-key.keystore/my-upload-key.keystore" --force --out-file ./my-upload-key.keystore
110117

111118
- name: Build Android Release
112119
working-directory: android

.github/workflows/deploy.yml

+25-48
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,14 @@ jobs:
9797
pattern: android-*-artifact
9898
merge-multiple: true
9999

100-
- name: Log downloaded artifact paths
101-
run: ls -R /tmp/artifacts
100+
- name: Install 1Password CLI
101+
uses: 1password/install-cli-action@v1
102102

103-
- name: Decrypt json w/ Google Play credentials
104-
run: gpg --batch --yes --decrypt --passphrase="${{ secrets.LARGE_SECRET_PASSPHRASE }}" --output android-fastlane-json-key.json android-fastlane-json-key.json.gpg
103+
- name: Load files from 1Password
105104
working-directory: android/app
105+
env:
106+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
107+
run: op read "op://Mobile-Deploy-CI/android-fastlane-json-key.json/android-fastlane-json-key.json" --force --out-file ./android-fastlane-json-key.json
106108

107109
- name: Upload Android app to Google Play
108110
run: bundle exec fastlane android upload_google_play_internal
@@ -166,9 +168,10 @@ jobs:
166168
env:
167169
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
168170
run: |
169-
op read op://Mobile-Deploy-CI/firebase.json/firebase.json --force --out-file ./firebase.json
170-
op read op://Mobile-Deploy-CI/upload-key.keystore/upload-key.keystore --force --out-file ./upload-key.keystore
171-
op read op://Mobile-Deploy-CI/android-fastlane-json-key.json/android-fastlane-json-key.json --force --out-file ./android-fastlane-json-key.json
171+
op read "op://Mobile-Deploy-CI/firebase.json/firebase.json" --force --out-file ./firebase.json
172+
op read "op://Mobile-Deploy-CI/upload-key.keystore/upload-key.keystore" --force --out-file ./upload-key.keystore
173+
op read "op://Mobile-Deploy-CI/android-fastlane-json-key.json/android-fastlane-json-key.json" --force --out-file ./android-fastlane-json-key.json
174+
172175
# Copy the keystore to the Android directory for Fullstory
173176
cp ./upload-key.keystore Mobile-Expensify/Android
174177
@@ -373,25 +376,17 @@ jobs:
373376
max_attempts: 5
374377
command: scripts/pod-install.sh
375378

376-
- name: Decrypt AppStore profile
377-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AppStore.mobileprovision NewApp_AppStore.mobileprovision.gpg
378-
env:
379-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
380-
381-
- name: Decrypt AppStore Notification Service profile
382-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AppStore_Notification_Service.mobileprovision NewApp_AppStore_Notification_Service.mobileprovision.gpg
383-
env:
384-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
385-
386-
- name: Decrypt certificate
387-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output Certificates.p12 Certificates.p12.gpg
388-
env:
389-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
379+
- name: Install 1Password CLI
380+
uses: 1password/install-cli-action@v1
390381

391-
- name: Decrypt App Store Connect API key
392-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output ios-fastlane-json-key.json ios-fastlane-json-key.json.gpg
382+
- name: Load files from 1Password
393383
env:
394-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
384+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
385+
run: |
386+
op read "op://Mobile-Deploy-CI/NewApp_AppStore/NewApp_AppStore.mobileprovision" --force --out-file ./NewApp_AppStore.mobileprovision
387+
op read "op://Mobile-Deploy-CI/NewApp_AppStore_Notification_Service/NewApp_AppStore_Notification_Service.mobileprovision" --force --out-file ./NewApp_AppStore_Notification_Service.mobileprovision
388+
op read "op://Mobile-Deploy-CI/New Expensify Distribution Certificate/Certificates.p12" --force --out-file ./Certificates.p12
389+
op read "op://Mobile-Deploy-CI/ios-fastlane-json-key.json/ios-fastlane-json-key.json" --force --out-file ./ios-fastlane-json-key.json
395390
396391
- name: Get iOS native version
397392
id: getIOSVersion
@@ -511,30 +506,12 @@ jobs:
511506
env:
512507
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
513508
run: |
514-
op read op://Mobile-Deploy-CI/firebase.json/firebase.json --force --out-file ./firebase.json
515-
op read op://Mobile-Deploy-CI/OldApp_AppStore/OldApp_AppStore.mobileprovision --force --out-file ./OldApp_AppStore.mobileprovision
516-
op read op://Mobile-Deploy-CI/OldApp_AppStore_Share_Extension/OldApp_AppStore_Share_Extension.mobileprovision --force --out-file ./OldApp_AppStore_Share_Extension.mobileprovision
517-
op read op://Mobile-Deploy-CI/OldApp_AppStore_Notification_Service/OldApp_AppStore_Notification_Service.mobileprovision --force --out-file ./OldApp_AppStore_Notification_Service.mobileprovision
518-
519-
- name: Decrypt AppStore profile
520-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AppStore.mobileprovision NewApp_AppStore.mobileprovision.gpg
521-
env:
522-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
523-
524-
- name: Decrypt AppStore Notification Service profile
525-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AppStore_Notification_Service.mobileprovision NewApp_AppStore_Notification_Service.mobileprovision.gpg
526-
env:
527-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
528-
529-
- name: Decrypt certificate
530-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output Certificates.p12 Certificates.p12.gpg
531-
env:
532-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
533-
534-
- name: Decrypt App Store Connect API key
535-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output ios-fastlane-json-key.json ios-fastlane-json-key.json.gpg
536-
env:
537-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
509+
op read "op://Mobile-Deploy-CI/firebase.json/firebase.json" --force --out-file ./firebase.json
510+
op read "op://Mobile-Deploy-CI/OldApp_AppStore/OldApp_AppStore.mobileprovision" --force --out-file ./OldApp_AppStore.mobileprovision
511+
op read "op://Mobile-Deploy-CI/OldApp_AppStore_Share_Extension/OldApp_AppStore_Share_Extension.mobileprovision" --force --out-file ./OldApp_AppStore_Share_Extension.mobileprovision
512+
op read "op://Mobile-Deploy-CI/OldApp_AppStore_Notification_Service/OldApp_AppStore_Notification_Service.mobileprovision" --force --out-file ./OldApp_AppStore_Notification_Service.mobileprovision
513+
op read "op://Mobile-Deploy-CI/ios-fastlane-json-key.json/ios-fastlane-json-key.json" --force --out-file ./ios-fastlane-json-key.json
514+
op read "op://Mobile-Deploy-CI/New Expensify Distribution Certificate/Certificates.p12" --force --out-file ./Certificates.p12
538515
539516
- name: Set current App version in Env
540517
run: echo "VERSION=$(npm run print-version --silent)" >> "$GITHUB_ENV"

.github/workflows/failureNotifier.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ jobs:
2525
repo: context.repo.repo,
2626
run_id: runId,
2727
});
28-
return jobsData.data;
28+
const jobNamesToIgnore = ['confirmPassingBuild'];
29+
return jobsData.data.filter(job => !jobNamesToIgnore.includes(job.name));
2930
3031
- name: Fetch Previous Workflow Run
3132
id: previous-workflow-run

.github/workflows/testBuild.yml

+9-15
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,6 @@ jobs:
111111
pattern: android-*-artifact
112112
merge-multiple: true
113113

114-
- name: Log downloaded artifact paths
115-
run: ls -R /tmp/artifacts
116-
117114
- name: Configure AWS Credentials
118115
uses: aws-actions/configure-aws-credentials@v4
119116
with:
@@ -189,20 +186,17 @@ jobs:
189186
max_attempts: 5
190187
command: scripts/pod-install.sh
191188

192-
- name: Decrypt AdHoc profile
193-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AdHoc.mobileprovision NewApp_AdHoc.mobileprovision.gpg
194-
env:
195-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
189+
- name: Install 1Password CLI
190+
uses: 1password/install-cli-action@v1
196191

197-
- name: Decrypt AdHoc Notification Service profile
198-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output NewApp_AdHoc_Notification_Service.mobileprovision NewApp_AdHoc_Notification_Service.mobileprovision.gpg
192+
- name: Load files from 1Password
199193
env:
200-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
201-
202-
- name: Decrypt certificate
203-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output Certificates.p12 Certificates.p12.gpg
204-
env:
205-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
194+
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
195+
run: |
196+
op read "op://Mobile-Deploy-CI/NewApp_AdHoc/NewApp_AdHoc.mobileprovision" --force --out-file ./NewApp_AdHoc.mobileprovision
197+
op read "op://Mobile-Deploy-CI/NewApp_AdHoc_Notification_Service/NewApp_AdHoc_Notification_Service.mobileprovision" --force --out-file ./NewApp_AdHoc_Notification_Service.mobileprovision
198+
op read "op://Mobile-Deploy-CI/NewApp_AdHoc_Share_Extension.mobileprovision/NewApp_AdHoc_Share_Extension.mobileprovision" --force --out-file ./NewApp_AdHoc_Share_Extension.mobileprovision
199+
op read "op://Mobile-Deploy-CI/New Expensify Distribution Certificate/Certificates.p12" --force --out-file ./Certificates.p12
206200
207201
- name: Configure AWS Credentials
208202
uses: aws-actions/configure-aws-credentials@v4

.github/workflows/testBuildHybrid.yml

+20-25
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
echo "REF=$(gh pr view ${{ github.event.inputs.PULL_REQUEST_NUMBER }} --json headRefOid --jq '.headRefOid')" >> "$GITHUB_OUTPUT"
6060
env:
6161
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62-
62+
6363
getOldDotPR:
6464
runs-on: ubuntu-latest
6565
needs: validateActor
@@ -106,7 +106,7 @@ jobs:
106106
fi
107107
env:
108108
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
109-
109+
110110

111111
postGitHubCommentBuildStarted:
112112
runs-on: ubuntu-latest
@@ -153,16 +153,16 @@ jobs:
153153
cd Mobile-Expensify
154154
git fetch origin ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF }}
155155
git checkout ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF }}
156-
156+
157157
- name: Configure MapBox SDK
158158
run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
159159

160160
- name: Setup Node
161161
id: setup-node
162162
uses: ./.github/actions/composite/setupNode
163-
with:
163+
with:
164164
IS_HYBRID_BUILD: 'true'
165-
165+
166166
- name: Run grunt build
167167
run: |
168168
cd Mobile-Expensify
@@ -192,10 +192,11 @@ jobs:
192192
env:
193193
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
194194
run: |
195-
op document get --output ./upload-key.keystore upload-key.keystore
196-
op document get --output ./android-fastlane-json-key.json android-fastlane-json-key.json
195+
op read "op://Mobile-Deploy-CI/upload-key.keystore/upload-key.keystore" --force --out-file ./upload-key.keystore
196+
op read "op://Mobile-Deploy-CI/android-fastlane-json-key.json/android-fastlane-json-key.json" --force --out-file ./android-fastlane-json-key.json
197+
197198
# Copy the keystore to the Android directory for Fullstory
198-
cp ./upload-key.keystore Mobile-Expensify/Android
199+
cp ./upload-key.keystore Mobile-Expensify/Android
199200
200201
- name: Load Android upload keystore credentials from 1Password
201202
id: load-credentials
@@ -215,28 +216,28 @@ jobs:
215216
ANDROID_UPLOAD_KEYSTORE_ALIAS: ${{ steps.load-credentials.outputs.ANDROID_UPLOAD_KEYSTORE_ALIAS }}
216217
ANDROID_UPLOAD_KEY_PASSWORD: ${{ steps.load-credentials.outputs.ANDROID_UPLOAD_KEY_PASSWORD }}
217218
run: bundle exec fastlane android build_adhoc_hybrid
218-
219+
219220
- name: Configure AWS Credentials
220221
uses: aws-actions/configure-aws-credentials@v4
221222
with:
222223
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
223224
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
224225
aws-region: us-east-1
225-
226+
226227
- name: Upload Android AdHoc build to S3
227228
run: bundle exec fastlane android upload_s3
228229
env:
229230
S3_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }}
230231
S3_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
231232
S3_BUCKET: ad-hoc-expensify-cash
232-
S3_REGION: us-east-1
233+
S3_REGION: us-east-1
233234

234235
- name: Export S3 path
235236
id: exportAndroidS3Path
236237
run: |
237238
# $s3APKPath is set from within the Fastfile, android upload_s3 lane
238239
echo "S3_APK_PATH=$s3APKPath" >> "$GITHUB_OUTPUT"
239-
240+
240241
iosHybrid:
241242
name: Build and deploy iOS for testing
242243
needs: [validateActor, getBranchRef, getOldDotBranchRef]
@@ -271,9 +272,9 @@ jobs:
271272
- name: Setup Node
272273
id: setup-node
273274
uses: ./.github/actions/composite/setupNode
274-
with:
275+
with:
275276
IS_HYBRID_BUILD: 'true'
276-
277+
277278
- name: Create .env.adhoc file based on staging and add PULL_REQUEST_NUMBER env to it
278279
run: |
279280
cp .env.staging .env.adhoc
@@ -284,7 +285,7 @@ jobs:
284285
uses: ruby/setup-ruby@v1.204.0
285286
with:
286287
bundler-cache: true
287-
288+
288289
- name: Install New Expensify Gems
289290
run: bundle install
290291

@@ -314,14 +315,10 @@ jobs:
314315
env:
315316
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
316317
run: |
317-
op read op://Mobile-Deploy-CI/OldApp_AdHoc/OldApp_AdHoc.mobileprovision --force --out-file ./OldApp_AdHoc.mobileprovision
318-
op read op://Mobile-Deploy-CI/OldApp_AdHoc_Share_Extension/OldApp_AdHoc_Share_Extension.mobileprovision --force --out-file ./OldApp_AdHoc_Share_Extension.mobileprovision
319-
op read op://Mobile-Deploy-CI/OldApp_AdHoc_Notification_Service/OldApp_AdHoc_Notification_Service.mobileprovision --force --out-file ./OldApp_AdHoc_Notification_Service.mobileprovision
320-
321-
- name: Decrypt certificate
322-
run: cd ios && gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" --output Certificates.p12 Certificates.p12.gpg
323-
env:
324-
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
318+
op read "op://Mobile-Deploy-CI/OldApp_AdHoc/OldApp_AdHoc.mobileprovision" --force --out-file ./OldApp_AdHoc.mobileprovision
319+
op read "op://Mobile-Deploy-CI/OldApp_AdHoc_Share_Extension/OldApp_AdHoc_Share_Extension.mobileprovision" --force --out-file ./OldApp_AdHoc_Share_Extension.mobileprovision
320+
op read "op://Mobile-Deploy-CI/OldApp_AdHoc_Notification_Service/OldApp_AdHoc_Notification_Service.mobileprovision" --force --out-file ./OldApp_AdHoc_Notification_Service.mobileprovision
321+
op read "op://Mobile-Deploy-CI/New Expensify Distribution Certificate/Certificates.p12" --force --out-file ./Certificates.p12
325322
326323
- name: Build AdHoc app
327324
run: bundle exec fastlane ios build_adhoc_hybrid
@@ -347,8 +344,6 @@ jobs:
347344
name: ios
348345
path: ./ios_paths.json
349346

350-
351-
352347
postGithubComment:
353348
runs-on: ubuntu-latest
354349
name: Post a GitHub comment with app download links for testing

Mobile-Expensify

-1.69 KB
Binary file not shown.

android/app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ android {
110110
minSdkVersion rootProject.ext.minSdkVersion
111111
targetSdkVersion rootProject.ext.targetSdkVersion
112112
multiDexEnabled rootProject.ext.multiDexEnabled
113-
versionCode 1009009401
114-
versionName "9.0.94-1"
113+
versionCode 1009009408
114+
versionName "9.0.94-8"
115115
// Supported language variants must be declared here to avoid from being removed during the compilation.
116116
// This also helps us to not include unnecessary language variants in the APK.
117117
resConfigs "en", "es"
-2.19 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
33
<font app:fontStyle="normal" app:fontWeight="400" app:font="@font/expensifymono_regular"/>
4+
<font app:fontStyle="italic" app:fontWeight="400" app:font="@font/expensifymono_italic"/>
45
<font app:fontStyle="normal" app:fontWeight="700" app:font="@font/expensifymono_bold"/>
6+
<font app:fontStyle="italic" app:fontWeight="700" app:font="@font/expensifymono_bolditalic"/>
57
</font-family>
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)