Skip to content

Commit d537da2

Browse files
committed
Merge branch 'feat/#Expensify#23229-linking' of https://github.com/margelo/expensify-app-fork into feat/23229-linking-e2e
2 parents 3ad7459 + 1f90068 commit d537da2

File tree

433 files changed

+7811
-11253
lines changed

Some content is hidden

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

433 files changed

+7811
-11253
lines changed

.github/actions/composite/buildAndroidE2EAPK/action.yml

+33
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,24 @@ inputs:
1414
MAPBOX_SDK_DOWNLOAD_TOKEN:
1515
description: The token to use to download the MapBox SDK
1616
required: true
17+
PATH_ENV_FILE:
18+
description: The path to the .env file to use for the build
19+
required: true
20+
EXPENSIFY_PARTNER_NAME:
21+
description: The name of the Expensify partner to use for the build
22+
required: true
23+
EXPENSIFY_PARTNER_PASSWORD:
24+
description: The password of the Expensify partner to use for the build
25+
required: true
26+
EXPENSIFY_PARTNER_USER_ID:
27+
description: The user ID of the Expensify partner to use for the build
28+
required: true
29+
EXPENSIFY_PARTNER_USER_SECRET:
30+
description: The user secret of the Expensify partner to use for the build
31+
required: true
32+
EXPENSIFY_PARTNER_PASSWORD_EMAIL:
33+
description: The email address of the Expensify partner to use for the build
34+
required: true
1735

1836
runs:
1937
using: composite
@@ -37,9 +55,24 @@ runs:
3755

3856
- uses: gradle/gradle-build-action@3fbe033aaae657f011f88f29be9e65ed26bd29ef
3957

58+
- name: Append environment variables to env file
59+
shell: bash
60+
run: |
61+
echo "EXPENSIFY_PARTNER_NAME=${EXPENSIFY_PARTNER_NAME}" >> ${{ inputs.PATH_ENV_FILE }}
62+
echo "EXPENSIFY_PARTNER_PASSWORD=${EXPENSIFY_PARTNER_PASSWORD}" >> ${{ inputs.PATH_ENV_FILE }}
63+
echo "EXPENSIFY_PARTNER_USER_ID=${EXPENSIFY_PARTNER_USER_ID}" >> ${{ inputs.PATH_ENV_FILE }}
64+
echo "EXPENSIFY_PARTNER_USER_SECRET=${EXPENSIFY_PARTNER_USER_SECRET}" >> ${{ inputs.PATH_ENV_FILE }}
65+
echo "EXPENSIFY_PARTNER_PASSWORD_EMAIL=${EXPENSIFY_PARTNER_PASSWORD_EMAIL}" >> ${{ inputs.PATH_ENV_FILE }}
66+
4067
- name: Build APK
4168
run: npm run ${{ inputs.PACKAGE_SCRIPT_NAME }}
4269
shell: bash
70+
env:
71+
EXPENSIFY_PARTNER_NAME: ${{ inputs.EXPENSIFY_PARTNER_NAME }}
72+
EXPENSIFY_PARTNER_PASSWORD: ${{ inputs.EXPENSIFY_PARTNER_PASSWORD }}
73+
EXPENSIFY_PARTNER_USER_ID: ${{ inputs.EXPENSIFY_PARTNER_USER_ID }}
74+
EXPENSIFY_PARTNER_USER_SECRET: ${{ inputs.EXPENSIFY_PARTNER_USER_SECRET }}
75+
EXPENSIFY_PARTNER_PASSWORD_EMAIL: ${{ inputs.EXPENSIFY_PARTNER_PASSWORD_EMAIL }}
4376

4477
- name: Upload APK
4578
uses: actions/upload-artifact@65d862660abb392b8c4a3d1195a2108db131dd05

.github/scripts/createHelpRedirects.sh

+4-4
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ while read -r line; do
4141

4242
# Basic sanity checking to make sure that the source and destination are in expected
4343
# subdomains.
44-
if ! [[ $SOURCE_URL =~ ^https://community\.expensify\.com ]]; then
45-
error "Found source URL that is not a community URL: $SOURCE_URL"
44+
if ! [[ $SOURCE_URL =~ ^https://(community|help)\.expensify\.com ]]; then
45+
error "Found source URL that is not a communityDot or helpDot URL: $SOURCE_URL"
4646
exit 1
4747
fi
4848

49-
if ! [[ $DEST_URL =~ ^https://help\.expensify\.com ]]; then
50-
error "Found destination URL that is not a help URL: $DEST_URL"
49+
if ! [[ $DEST_URL =~ ^https://(help|use)\.expensify\.com ]]; then
50+
error "Found destination URL that is not a helpDot or useDot URL: $DEST_URL"
5151
exit 1
5252
fi
5353

.github/workflows/e2ePerformanceTests.yml

+12
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,12 @@ jobs:
5252
PACKAGE_SCRIPT_NAME: android-build-e2e
5353
APP_OUTPUT_PATH: android/app/build/outputs/apk/e2e/release/app-e2e-release.apk
5454
MAPBOX_SDK_DOWNLOAD_TOKEN: ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
55+
EXPENSIFY_PARTNER_NAME: ${{ secrets.EXPENSIFY_PARTNER_NAME }}
56+
EXPENSIFY_PARTNER_PASSWORD: ${{ secrets.EXPENSIFY_PARTNER_PASSWORD }}
57+
EXPENSIFY_PARTNER_USER_ID: ${{ secrets.EXPENSIFY_PARTNER_USER_ID }}
58+
EXPENSIFY_PARTNER_USER_SECRET: ${{ secrets.EXPENSIFY_PARTNER_USER_SECRET }}
59+
EXPENSIFY_PARTNER_PASSWORD_EMAIL: ${{ secrets.EXPENSIFY_PARTNER_PASSWORD_EMAIL }}
60+
PATH_ENV_FILE: tests/e2e/.env.e2e
5561

5662
buildDelta:
5763
runs-on: ubuntu-latest-xl
@@ -114,6 +120,12 @@ jobs:
114120
PACKAGE_SCRIPT_NAME: android-build-e2edelta
115121
APP_OUTPUT_PATH: android/app/build/outputs/apk/e2edelta/release/app-e2edelta-release.apk
116122
MAPBOX_SDK_DOWNLOAD_TOKEN: ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
123+
EXPENSIFY_PARTNER_NAME: ${{ secrets.EXPENSIFY_PARTNER_NAME }}
124+
EXPENSIFY_PARTNER_PASSWORD: ${{ secrets.EXPENSIFY_PARTNER_PASSWORD }}
125+
EXPENSIFY_PARTNER_USER_ID: ${{ secrets.EXPENSIFY_PARTNER_USER_ID }}
126+
EXPENSIFY_PARTNER_USER_SECRET: ${{ secrets.EXPENSIFY_PARTNER_USER_SECRET }}
127+
EXPENSIFY_PARTNER_PASSWORD_EMAIL: ${{ secrets.EXPENSIFY_PARTNER_PASSWORD_EMAIL }}
128+
PATH_ENV_FILE: tests/e2e/.env.e2edelta
117129

118130
runTestsInAWS:
119131
runs-on: ubuntu-latest

.github/workflows/reassurePerformanceTests.yml

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
npx reassure --baseline
3434
git switch --force --detach -
3535
git merge --no-commit --allow-unrelated-histories "$BASELINE_BRANCH" -X ours
36+
git checkout --ours .
3637
npm install --force
3738
npx reassure --branch
3839

.nvmrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
20.9.0
1+
20.10.0

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ If you're using another operating system, you will need to ensure `mkcert` is in
5858
## Running the iOS app 📱
5959
For an M1 Mac, read this [SO](https://stackoverflow.com/questions/64901180/how-to-run-cocoapods-on-apple-silicon-m1) for installing cocoapods.
6060

61+
* If you haven't already, install Xcode tools and make sure to install the optional "iOS Platform" package as well. This installation may take awhile.
6162
* Install project gems, including cocoapods, using bundler to ensure everyone uses the same versions. In the project root, run: `bundle install`
6263
* If you get the error `Could not find 'bundler'`, install the bundler gem first: `gem install bundler` and try again.
6364
* If you are using MacOS and get the error `Gem::FilePermissionError` when trying to install the bundler gem, you're likely using system Ruby, which requires administrator permission to modify. To get around this, install another version of Ruby with a version manager like [rbenv](https://github.com/rbenv/rbenv#installation).

android/app/build.gradle

+5-4
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ project.ext.envConfigFiles = [
7171
/**
7272
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
7373
*/
74-
def enableProguardInReleaseBuilds = false
74+
def enableProguardInReleaseBuilds = true
7575

7676
/**
7777
* The preferred build flavor of JavaScriptCore (JSC)
@@ -98,8 +98,8 @@ android {
9898
minSdkVersion rootProject.ext.minSdkVersion
9999
targetSdkVersion rootProject.ext.targetSdkVersion
100100
multiDexEnabled rootProject.ext.multiDexEnabled
101-
versionCode 1001043202
102-
versionName "1.4.32-2"
101+
versionCode 1001043303
102+
versionName "1.4.33-3"
103103
}
104104

105105
flavorDimensions "default"
@@ -152,8 +152,9 @@ android {
152152
}
153153
release {
154154
productFlavors.production.signingConfig signingConfigs.release
155+
shrinkResources enableProguardInReleaseBuilds
155156
minifyEnabled enableProguardInReleaseBuilds
156-
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
157+
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
157158

158159
signingConfig null
159160
// buildTypes take precedence over productFlavors when it comes to the signing configuration,

android/app/proguard-rules.pro

+28-2
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,31 @@
88
# http://developer.android.com/guide/developing/tools/proguard.html
99

1010
# Add any project specific keep options here:
11-
-keep class com.facebook.hermes.unicode.** { *; }
12-
-keep class com.facebook.jni.** { *; }
11+
-keep class com.expensify.chat.BuildConfig { *; }
12+
-keep, allowoptimization, allowobfuscation class expo.modules.** { *; }
13+
14+
# Added from auto-generated missingrules.txt to allow build to succeed
15+
-dontwarn com.onfido.javax.inject.Inject
16+
-dontwarn javax.lang.model.element.Element
17+
-dontwarn javax.lang.model.type.TypeMirror
18+
-dontwarn javax.lang.model.type.TypeVisitor
19+
-dontwarn javax.lang.model.util.SimpleTypeVisitor7
20+
-dontwarn net.sf.scuba.data.Gender
21+
-dontwarn net.sf.scuba.smartcards.CardFileInputStream
22+
-dontwarn net.sf.scuba.smartcards.CardService
23+
-dontwarn net.sf.scuba.smartcards.CardServiceException
24+
-dontwarn org.jmrtd.AccessKeySpec
25+
-dontwarn org.jmrtd.BACKey
26+
-dontwarn org.jmrtd.BACKeySpec
27+
-dontwarn org.jmrtd.PACEKeySpec
28+
-dontwarn org.jmrtd.PassportService
29+
-dontwarn org.jmrtd.lds.CardAccessFile
30+
-dontwarn org.jmrtd.lds.PACEInfo
31+
-dontwarn org.jmrtd.lds.SecurityInfo
32+
-dontwarn org.jmrtd.lds.icao.DG15File
33+
-dontwarn org.jmrtd.lds.icao.DG1File
34+
-dontwarn org.jmrtd.lds.icao.MRZInfo
35+
-dontwarn org.jmrtd.protocol.AAResult
36+
-dontwarn org.jmrtd.protocol.BACResult
37+
-dontwarn org.jmrtd.protocol.PACEResult
38+
-dontwarn org.spongycastle.jce.provider.BouncyCastleProvider

android/app/src/main/res/raw/keep.xml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources xmlns:tools="http://schemas.android.com/tools"
3+
tools:keep="@mipmap/ic_launcher, @drawable/bootsplash*, @drawable/alert_background,
4+
@drawable/ic_launcher*, @drawable/ic_notification*, @drawable/picker_background,
5+
@drawable/rn_edit_text_material" />

android/settings.gradle

+1-10
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,5 @@ apply from: file("../node_modules/@react-native-community/cli-platform-android/n
1717
include ':app'
1818
includeBuild('../node_modules/@react-native/gradle-plugin')
1919

20-
includeBuild('../node_modules/react-native') {
21-
dependencySubstitution {
22-
substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
23-
substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
24-
substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
25-
substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
26-
}
27-
}
28-
2920
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle")
30-
useExpoModules()
21+
useExpoModules()

assets/animations/Update.lottie

86.9 KB
Binary file not shown.

assets/images/eReceiptIcon.svg

+1-1
Loading

config/webpack/webpack.desktop.js

-9
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,6 @@ module.exports = (env) => {
5454
loader: 'babel-loader',
5555
exclude: /node_modules/,
5656
},
57-
{
58-
test: /react-native-onyx/,
59-
use: {
60-
loader: 'babel-loader',
61-
options: {
62-
presets: ['@babel/preset-react'],
63-
},
64-
},
65-
},
6657
],
6758
},
6859
};

contributingGuides/CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Additionally if you want to discuss an idea with the open source community witho
123123
```
124124
11. [Open a pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request-from-a-fork), and make sure to fill in the required fields.
125125
12. An Expensify engineer and a member from the Contributor-Plus team will be assigned to your pull request automatically to review.
126-
13. Daily updates on weekdays are highly recommended. If you know you won’t be able to provide updates for > 1 week, please comment on the PR or issue how long you plan to be out so that we may plan accordingly. We understand everyone needs a little vacation here and there. Any issue that doesn't receive an update for 1 full week may be considered abandoned and the original contract terminated.
126+
13. Daily updates on weekdays are highly recommended. If you know you won’t be able to provide updates within 48 hours, please comment on the PR or issue stating how long you plan to be out so that we may plan accordingly. We understand everyone needs a little vacation here and there. Any issue that doesn't receive an update for 5 days (including weekend days) may be considered abandoned and the original contract terminated.
127127
128128
#### Submit your pull request for final review
129129
14. When you are ready to submit your pull request for final review, make sure the following checks pass:

docs/articles/expensify-classic/getting-started/Plan-Types.md

-34
This file was deleted.

docs/articles/expensify-classic/getting-started/approved-accountants/Card-Revenue-Share-For-Expensify-Approved-Partners.md

-17
This file was deleted.

0 commit comments

Comments
 (0)