diff --git a/.eslintignore b/.eslintignore index c76dac0a49..a90a36e3d7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -893,6 +893,7 @@ packages/app-mobile/utils/makeShowMessageBox.test.js packages/app-mobile/utils/makeShowMessageBox.js packages/app-mobile/utils/pickDocument.js packages/app-mobile/utils/polyfills/bufferPolyfill.js +packages/app-mobile/utils/polyfills/crypto-polyfill/index.js packages/app-mobile/utils/polyfills/index.js packages/app-mobile/utils/setupNotifications.js packages/app-mobile/utils/shareFile.js diff --git a/.gitignore b/.gitignore index 06439bac2e..5e564a0a02 100644 --- a/.gitignore +++ b/.gitignore @@ -867,6 +867,7 @@ packages/app-mobile/utils/makeShowMessageBox.test.js packages/app-mobile/utils/makeShowMessageBox.js packages/app-mobile/utils/pickDocument.js packages/app-mobile/utils/polyfills/bufferPolyfill.js +packages/app-mobile/utils/polyfills/crypto-polyfill/index.js packages/app-mobile/utils/polyfills/index.js packages/app-mobile/utils/setupNotifications.js packages/app-mobile/utils/shareFile.js diff --git a/.yarn/patches/react-native-popup-menu-npm-0.16.1-28fd66ecb5.patch b/.yarn/patches/react-native-popup-menu-npm-0.17.0-8b745d88dd.patch similarity index 60% rename from .yarn/patches/react-native-popup-menu-npm-0.16.1-28fd66ecb5.patch rename to .yarn/patches/react-native-popup-menu-npm-0.17.0-8b745d88dd.patch index af0442f6d3..b0f2d6d375 100644 --- a/.yarn/patches/react-native-popup-menu-npm-0.16.1-28fd66ecb5.patch +++ b/.yarn/patches/react-native-popup-menu-npm-0.17.0-8b745d88dd.patch @@ -1,21 +1,21 @@ # This patch improves the note actions menu (the kebab menu)'s accessibility # by labelling its dismiss button. diff --git a/build/rnpm.js b/build/rnpm.js -index 1111c2de99b3d4c5651ca4eee3ba59c0ce8e13e1..d410ee12b38d02c399b0a40973217da0082d73c0 100644 +index 47bc91a88b9e2246a0ce4295f9f932da6a572461..75b5a22bdcbc2594238bcf953df6d54e18cc7793 100644 --- a/build/rnpm.js +++ b/build/rnpm.js -@@ -1573,7 +1573,9 @@ +@@ -1267,7 +1267,9 @@ onPress = _this$props.onPress, style = _this$props.style; - return /*#__PURE__*/React__default.createElement(reactNative.TouchableWithoutFeedback, { + return React__default.createElement(reactNative.TouchableWithoutFeedback, { - onPress: onPress + onPress: onPress, + accessibilityLabel: _this$props.accessibilityLabel, + accessibilityRole: 'button', - }, /*#__PURE__*/React__default.createElement(reactNative.Animated.View, { + }, React__default.createElement(reactNative.Animated.View, { style: [styles.fullscreen, { opacity: this.fadeAnim -@@ -1588,7 +1590,8 @@ +@@ -1282,7 +1284,8 @@ }(React.Component); Backdrop.propTypes = { @@ -25,24 +25,33 @@ index 1111c2de99b3d4c5651ca4eee3ba59c0ce8e13e1..d410ee12b38d02c399b0a40973217da0 }; var styles = reactNative.StyleSheet.create({ fullscreen: { -@@ -1658,6 +1661,7 @@ +@@ -1352,6 +1355,7 @@ style: styles$1.placeholder - }, /*#__PURE__*/React__default.createElement(Backdrop, { + }, React__default.createElement(Backdrop, { onPress: ctx._onBackdropPress, + accessibilityLabel: this.props.closeButtonLabel, style: backdropStyles, ref: ctx.onBackdropRef }), ctx._makeOptions()); -@@ -2090,6 +2094,7 @@ - }), /*#__PURE__*/React__default.createElement(MenuPlaceholder, { +@@ -1784,6 +1788,7 @@ + }), React__default.createElement(MenuPlaceholder, { ctx: this, backdropStyles: customStyles.backdrop, + closeButtonLabel: this.props.closeButtonLabel, ref: this._onPlaceholderRef })))); } +@@ -1854,7 +1859,7 @@ + var _options$props = options.props, + optionsContainerStyle = _options$props.optionsContainerStyle, + renderOptionsContainer = _options$props.renderOptionsContainer, +- customStyles = _options$props.customStyles; ++ customStyles = _options$props.customStyles || {}; + var optionsRenderer = renderOptionsContainer || defaultOptionsContainerRenderer; + var isOutside = !triggerLayout || !optionsLayout; + diff --git a/src/index.d.ts b/src/index.d.ts -index 1db1e643a915e4bfb715e33354678ec1be219f50..007157e366d1935368bdd8eff5e7a0773e183d0f 100644 +index 7e1ef2e441a665e97c304984080399f9646395df..673c4f713757abfb1851cba0d4560020c83e5f50 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -18,6 +18,7 @@ declare module "react-native-popup-menu" { diff --git a/package.json b/package.json index 90fe9cf6b5..5a7be8024a 100644 --- a/package.json +++ b/package.json @@ -110,6 +110,6 @@ "app-builder-lib@24.13.3": "patch:app-builder-lib@npm%3A24.13.3#./.yarn/patches/app-builder-lib-npm-24.13.3-86a66c0bf3.patch", "react-native-sqlite-storage@6.0.1": "patch:react-native-sqlite-storage@npm%3A6.0.1#./.yarn/patches/react-native-sqlite-storage-npm-6.0.1-8369d747bd.patch", "react-native-paper@5.13.1": "patch:react-native-paper@npm%3A5.13.1#./.yarn/patches/react-native-paper-npm-5.13.1-f153e542e2.patch", - "react-native-popup-menu@0.16.1": "patch:react-native-popup-menu@npm%3A0.16.1#./.yarn/patches/react-native-popup-menu-npm-0.16.1-28fd66ecb5.patch" + "react-native-popup-menu@0.17.0": "patch:react-native-popup-menu@npm%3A0.17.0#./.yarn/patches/react-native-popup-menu-npm-0.17.0-8b745d88dd.patch" } } diff --git a/packages/app-mobile/.gitignore b/packages/app-mobile/.gitignore index ae6a50d98c..634beaadbc 100644 --- a/packages/app-mobile/.gitignore +++ b/packages/app-mobile/.gitignore @@ -33,6 +33,7 @@ local.properties .cxx/ *.keystore !debug.keystore +.kotlin/ # node.js # diff --git a/packages/app-mobile/Gemfile b/packages/app-mobile/Gemfile index 4a2fafb8ce..60770b1861 100644 --- a/packages/app-mobile/Gemfile +++ b/packages/app-mobile/Gemfile @@ -3,7 +3,14 @@ source 'https://rubygems.org' # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version ruby ">= 2.6.10" -# Cocoapods 1.15 introduced a bug which breaks the build. We will remove the upper -# bound in the template on Cocoapods with next React Native release. -gem 'cocoapods', '>= 1.13', '< 1.15' -gem 'activesupport', '>= 6.1.7.5', '< 7.1.0' +# Exclude problematic versions of cocoapods and activesupport that causes build failures. +gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' +gem 'xcodeproj', '< 1.26.0' +gem 'concurrent-ruby', '< 1.3.4' + +# Ruby 3.4.0 has removed some libraries from the standard library. +gem 'bigdecimal' +gem 'logger' +gem 'benchmark' +gem 'mutex_m' diff --git a/packages/app-mobile/android/app/build.gradle b/packages/app-mobile/android/app/build.gradle index 4abe9fb9b2..ffef65da4c 100644 --- a/packages/app-mobile/android/app/build.gradle +++ b/packages/app-mobile/android/app/build.gradle @@ -8,14 +8,14 @@ apply plugin: "com.facebook.react" */ react { /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen - // codegenDir = file("../node_modules/@react-native/codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") + // The root of your project, i.e. where "package.json" lives. Default is '../..' + // root = file("../..") + // The folder where the react-native NPM package is. Default is ../../node_modules/react-native + // reactNativeDir = file("../../node_modules/react-native") + // The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen + // codegenDir = file("../../node_modules/@react-native/codegen") + // The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js + // cliFile = file("../../node_modules/react-native/cli.js") /* Variants */ // The list of variants to that are debuggable. For those we're going to @@ -49,6 +49,9 @@ react { // // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" // hermesFlags = ["-O", "-output-source-map"] + + /* Autolinking */ + autolinkLibrariesWithApp() } /** @@ -60,14 +63,14 @@ def enableProguardInReleaseBuilds = false * The preferred build flavor of JavaScriptCore (JSC) * * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` + * `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+` * * The international variant includes ICU i18n library and necessary data * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that * give correct results when using with locales other than en-US. Note that * this variant is about 6MiB larger per architecture than default. */ -def jscFlavor = 'org.webkit:android-jsc:+' +def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+' android { @@ -141,5 +144,4 @@ dependencies { } } -apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" diff --git a/packages/app-mobile/android/app/src/main/AndroidManifest.xml b/packages/app-mobile/android/app/src/main/AndroidManifest.xml index 3cb36fdad1..cc474a8057 100644 --- a/packages/app-mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/app-mobile/android/app/src/main/AndroidManifest.xml @@ -43,7 +43,8 @@ android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" android:resizeableActivity="true" - android:theme="@style/AppTheme"> + android:theme="@style/AppTheme" + android:supportsRtl="true">