Skip to content

Commit a225bdb

Browse files
MelvinBotsituchan
andcommitted
Merge remote-tracking branch 'origin/main' into claude-timerCountdownAccessibility
Co-authored-by: Situ Chandra Shil <situchan@users.noreply.github.com>
2 parents cd5ccf3 + cc404f8 commit a225bdb

506 files changed

Lines changed: 14533 additions & 9600 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/actions/javascript/authorChecklist/index.js

Lines changed: 922 additions & 1046 deletions
Large diffs are not rendered by default.

.github/workflows/publishReactNativeAndroidArtifacts.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ jobs:
126126
name: Build and Publish React Native Artifacts
127127
runs-on: ${{ github.repository_owner == 'Expensify' && 'blacksmith-16vcpu-ubuntu-2404' || 'blacksmith-2vcpu-ubuntu-2404' }}
128128
needs: verifyPatches
129-
if: needs.verifyPatches.outputs.build_targets != ''
129+
if: needs.verifyPatches.outputs.build_targets != ''
130130
strategy:
131131
# Disable fail-fast to prevent cancelling both jobs when only one needs to be stopped due to concurrency limits
132132
fail-fast: false
@@ -160,7 +160,7 @@ jobs:
160160

161161
- name: Setup Gradle
162162
uses: gradle/actions/setup-gradle@06832c7b30a0129d7fb559bcc6e43d26f6374244
163-
163+
164164
- name: Determine new patched RN version
165165
id: getNewPatchedVersion
166166
run: echo "NEW_PATCHED_VERSION=$(./.github/scripts/getNewPatchedRNVersion.sh)" >> "$GITHUB_OUTPUT"
@@ -175,14 +175,26 @@ jobs:
175175
echo "Version: ${{ env.PATCHED_VERSION }}"
176176
echo "Patches hash: ${{ env.PATCHES_HASH }}"
177177
export ORG_GRADLE_PROJECT_reactNativeArchitectures="armeabi-v7a,arm64-v8a,x86,x86_64"
178-
./gradlew buildReactNativeArtifacts -PpatchedArtifacts.forceBuildFromSource=true -x lint -x test -x check
178+
179+
# Exclude ktfmt and test tasks from the included react-native build
180+
EXCLUDE_TASKS=(
181+
-x :react-native:packages:react-native:ReactAndroid:ktfmtCheck
182+
-x :react-native:packages:react-native:ReactAndroid:ktfmtCheckMain
183+
-x :react-native:packages:react-native:ReactAndroid:ktfmtCheckScripts
184+
-x :react-native:packages:react-native:ReactAndroid:testDebugOptimizedUnitTest
185+
-x :react-native:packages:react-native:ReactAndroid:testDebugUnitTest
186+
-x :react-native:packages:react-native:ReactAndroid:testReleaseUnitTest
187+
)
188+
189+
./gradlew buildReactNativeArtifacts -PpatchedArtifacts.forceBuildFromSource=true -x lint -x test -x check "${EXCLUDE_TASKS[@]}"
179190
./gradlew publishReactNativeArtifacts -PpatchedArtifacts.forceBuildFromSource=true
180191
env:
181192
GH_PUBLISH_ACTOR: ${{ github.actor }}
182193
GH_PUBLISH_TOKEN: ${{ github.token }}
183194
IS_HYBRID_BUILD: ${{ matrix.is_hybrid }}
184195
PATCHED_VERSION: ${{ steps.getNewPatchedVersion.outputs.NEW_PATCHED_VERSION }}
185196
PATCHES_HASH: ${{ matrix.is_hybrid == 'true' && needs.verifyPatches.outputs.hybrid_app_patches_hash || needs.verifyPatches.outputs.standalone_patches_hash }}
197+
CMAKE_VERSION: 3.31.6
186198

187199
- name: Announce failed workflow in Slack
188200
if: ${{ failure() }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ modules/*/lib/
160160

161161
# Playwright
162162
.playwright-output/
163+
.playwright-mcp/
163164

164165
# cspell cache
165166
.cspellcache

Mobile-Expensify

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ For detailed setup instructions for each platform, see the following guides:
5454
```sh
5555
Access to fetch at 'https://www.expensify.com/api/BeginSignIn' from origin 'http://localhost:8080' has been blocked by CORS policy
5656
```
57-
You probably have a misconfigured `.env` file - remove it (`rm .env`) and try again
57+
You probably have a misconfigured `.env` file - remove it (`rm .env`) and try again.
5858

5959
**Note:** Expensify engineers that will be testing with the API in your local dev environment please refer to [these additional instructions](https://stackoverflow.com/c/expensify/questions/7699/7700).
6060

__mocks__/@react-navigation/native/index.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,20 @@ const {triggerTransitionEnd, addListener} = isJestEnv
1717
addListener: () => {},
1818
};
1919

20-
const realOrMockedUseNavigation = isJestEnv ? realReactNavigation.useNavigation : {};
21-
const useNavigation = () => ({
22-
...realOrMockedUseNavigation,
23-
navigate: isJestEnv ? jest.fn() : () => {},
24-
getState: () => ({
25-
routes: [],
26-
}),
27-
addListener,
28-
});
20+
const useNavigation = isJestEnv
21+
? realReactNavigation.useNavigation
22+
: {
23+
navigate: isJestEnv ? jest.fn() : () => {},
24+
getState: () => ({
25+
routes: [],
26+
}),
27+
addListener,
28+
};
2929

3030
type NativeNavigationMock = typeof ReactNavigation & {
3131
triggerTransitionEnd: () => void;
3232
};
3333

34-
export * from '@react-navigation/core';
3534
const Link = isJestEnv ? realReactNavigation.Link : () => null;
3635
const LinkingContext = isJestEnv ? realReactNavigation.LinkingContext : () => null;
3736
const NavigationContainer = isJestEnv ? realReactNavigation.NavigationContainer : () => null;
@@ -46,14 +45,16 @@ const useScrollToTop = isJestEnv ? realReactNavigation.useScrollToTop : () => nu
4645
const useRoute = isJestEnv ? realReactNavigation.useRoute : () => ({params: {}});
4746
const useFocusEffect = isJestEnv ? realReactNavigation.useFocusEffect : (callback: () => void) => callback();
4847
const usePreventRemove = isJestEnv ? jest.fn() : () => {};
48+
const useNavigationState = isJestEnv ? realReactNavigation.useNavigationState : () => {};
4949

50+
export * from '@react-navigation/core';
5051
export {
5152
// Overridden modules
5253
useIsFocused,
5354
useTheme,
5455
useNavigation,
56+
useNavigationState,
5557
useLocale,
56-
triggerTransitionEnd,
5758

5859
// Theme modules are left alone
5960
Link,
@@ -63,6 +64,7 @@ export {
6364
DarkTheme,
6465
DefaultTheme,
6566
ThemeProvider,
67+
triggerTransitionEnd,
6668
useLinkBuilder,
6769
useLinkProps,
6870
useLinkTo,

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009034003
115-
versionName "9.3.40-3"
114+
versionCode 1009034103
115+
versionName "9.3.41-3"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"

android/app/src/main/java/com/expensify/chat/MainApplication.kt

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import com.expensify.chat.shortcutManagerModule.ShortcutManagerPackage
1313
import com.facebook.react.PackageList
1414
import com.facebook.react.ReactApplication
1515
import com.facebook.react.ReactHost
16-
import com.facebook.react.ReactNativeHost
1716
import com.facebook.react.ReactPackage
1817
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
1918
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
@@ -22,37 +21,27 @@ import com.facebook.react.modules.i18nmanager.I18nUtil
2221
import com.facebook.react.soloader.OpenSourceMergedSoMapping
2322
import com.facebook.soloader.SoLoader
2423
import expo.modules.ApplicationLifecycleDispatcher
25-
import expo.modules.ReactNativeHostWrapper
2624
import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative
2725

2826
class MainApplication : MultiDexApplication(), ReactApplication {
2927
companion object {
3028
private const val APP_START_TIME_PREFERENCES = "AppStartTime"
3129
}
32-
override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(this, object : DefaultReactNativeHost(this) {
33-
override fun getUseDeveloperSupport() = BuildConfig.DEBUG
34-
35-
override fun getPackages(): List<ReactPackage> =
36-
PackageList(this).packages.apply {
37-
// Packages that cannot be autolinked yet can be added manually here, for example:
38-
// add(MyReactNativePackage());
39-
add(ShortcutManagerPackage())
40-
add(BootSplashPackage())
41-
add(ExpensifyAppPackage())
42-
add(RNTextInputResetPackage())
43-
add(NavBarManagerPackage())
44-
}
45-
46-
override fun getJSMainModuleName() = ".expo/.virtual-metro-entry"
47-
48-
override val isNewArchEnabled: Boolean
49-
get() = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
50-
override val isHermesEnabled: Boolean
51-
get() = BuildConfig.IS_HERMES_ENABLED
52-
})
53-
54-
override val reactHost: ReactHost
55-
get() = getDefaultReactHost(applicationContext, reactNativeHost)
30+
override val reactHost: ReactHost by lazy {
31+
getDefaultReactHost(
32+
context = applicationContext,
33+
packageList =
34+
PackageList(this).packages.apply {
35+
// Packages that cannot be autolinked yet can be added manually here, for example:
36+
// add(MyReactNativePackage())
37+
add(ShortcutManagerPackage())
38+
add(BootSplashPackage())
39+
add(ExpensifyAppPackage())
40+
add(RNTextInputResetPackage())
41+
add(NavBarManagerPackage())
42+
},
43+
)
44+
}
5645

5746
override fun onCreate() {
5847
super.onCreate()
1.65 KB
Binary file not shown.

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)