expo 54.0.0-preview.2 → 54.0.0-preview.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ buildscript {
32
32
  def reactNativeVersion = project.extensions.getByType(ExpoModuleExtension).reactNativeVersion
33
33
 
34
34
  group = 'host.exp.exponent'
35
- version = '54.0.0-preview.2'
35
+ version = '54.0.0-preview.4'
36
36
 
37
37
  expoModule {
38
38
  // We can't prebuild the module because it depends on the generated files.
@@ -43,7 +43,7 @@ android {
43
43
  namespace "expo.core"
44
44
  defaultConfig {
45
45
  versionCode 1
46
- versionName "54.0.0-preview.2"
46
+ versionName "54.0.0-preview.4"
47
47
  consumerProguardFiles("proguard-rules.pro")
48
48
  }
49
49
  testOptions {
@@ -12,6 +12,7 @@ import android.os.Bundle
12
12
  import android.util.Log
13
13
  import android.view.KeyEvent
14
14
  import android.view.ViewGroup
15
+ import android.view.Window
15
16
  import androidx.annotation.VisibleForTesting
16
17
  import androidx.collection.ArrayMap
17
18
  import androidx.lifecycle.lifecycleScope
@@ -155,6 +156,11 @@ class ReactActivityDelegateWrapper(
155
156
  activity.window.colorMode = ActivityInfo.COLOR_MODE_WIDE_COLOR_GAMUT
156
157
  }
157
158
 
159
+ val edgeToEdgeEnabled = invokeWindowUtilKtMethod<Boolean>("isEdgeToEdgeFeatureFlagOn") ?: true
160
+ if (edgeToEdgeEnabled) {
161
+ invokeWindowUtilKtMethod<Unit>("enableEdgeToEdge", Pair(Window::class.java, plainActivity.window))
162
+ }
163
+
158
164
  val launchOptions = composeLaunchOptions()
159
165
  val reactDelegate: ReactDelegate
160
166
  if (ReactNativeFeatureFlags.enableBridgelessArchitecture) {
@@ -426,6 +432,25 @@ class ReactActivityDelegateWrapper(
426
432
  return method!!.invoke(delegate, *args) as T
427
433
  }
428
434
 
435
+ private inline fun <reified T> invokeWindowUtilKtMethod(
436
+ methodName: String,
437
+ vararg args: Pair<Class<*>, Any?>
438
+ ): T? {
439
+ val windowUtilClassName = "com.facebook.react.views.view.WindowUtilKt"
440
+
441
+ return runCatching {
442
+ val windowUtilKtClass = Class.forName(windowUtilClassName)
443
+ val parameterTypes = args.map { it.first }.toTypedArray()
444
+ val parameterValues = args.map { it.second }.toTypedArray()
445
+ val method = windowUtilKtClass.getDeclaredMethod(methodName, *parameterTypes)
446
+
447
+ method.isAccessible = true
448
+ method.invoke(null, *parameterValues) as? T
449
+ }.onFailure {
450
+ Log.e(TAG, "Failed to invoke '$methodName' on $windowUtilClassName", it)
451
+ }.getOrNull()
452
+ }
453
+
429
454
  private suspend fun loadAppImpl(appKey: String?, supportsDelayLoad: Boolean) {
430
455
  // Give modules a chance to wrap the ReactRootView in a container ViewGroup. If some module
431
456
  // wants to do this, we override the functionality of `loadApp` and call `setContentView` with
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "@expo/fingerprint": "~0.14.2",
3
- "@expo/metro-runtime": "~6.0.2",
3
+ "@expo/metro-runtime": "~6.1.0",
4
4
  "@expo/vector-icons": "^14.1.0",
5
- "@expo/ui": "~0.2.0-alpha.2",
5
+ "@expo/ui": "~0.2.0-alpha.4",
6
6
  "@react-native-async-storage/async-storage": "2.2.0",
7
7
  "@react-native-community/datetimepicker": "8.4.4",
8
8
  "@react-native-masked-view/masked-view": "0.3.2",
@@ -19,7 +19,7 @@
19
19
  "expo-apple-authentication": "~8.0.2",
20
20
  "expo-application": "~7.0.2",
21
21
  "expo-asset": "~12.0.2",
22
- "expo-audio": "~1.0.2",
22
+ "expo-audio": "~1.0.3",
23
23
  "expo-auth-session": "~7.0.2",
24
24
  "expo-av": "~16.0.2",
25
25
  "expo-background-fetch": "~14.0.2",
@@ -27,7 +27,7 @@
27
27
  "expo-battery": "~10.0.2",
28
28
  "expo-blur": "~15.0.2",
29
29
  "expo-brightness": "~14.0.2",
30
- "expo-build-properties": "~1.0.2",
30
+ "expo-build-properties": "~1.0.3",
31
31
  "expo-calendar": "~15.0.2",
32
32
  "expo-camera": "~17.0.2",
33
33
  "expo-cellular": "~8.0.2",
@@ -36,10 +36,10 @@
36
36
  "expo-constants": "~18.0.2",
37
37
  "expo-contacts": "~15.0.2",
38
38
  "expo-crypto": "~15.0.2",
39
- "expo-dev-client": "~6.0.2",
39
+ "expo-dev-client": "~6.0.3",
40
40
  "expo-device": "~8.0.2",
41
41
  "expo-document-picker": "~14.0.2",
42
- "expo-file-system": "~19.0.2",
42
+ "expo-file-system": "~19.0.3",
43
43
  "expo-font": "~14.0.2",
44
44
  "expo-gl": "~16.0.2",
45
45
  "expo-google-app-auth": "~8.3.0",
@@ -62,13 +62,13 @@
62
62
  "expo-media-library": "~18.0.2",
63
63
  "expo-mesh-gradient": "~0.4.2",
64
64
  "expo-module-template": "~11.0.2",
65
- "expo-modules-core": "~3.0.2",
66
- "expo-navigation-bar": "~5.0.2",
65
+ "expo-modules-core": "~3.0.4",
66
+ "expo-navigation-bar": "~5.0.3",
67
67
  "expo-network": "~8.0.2",
68
68
  "expo-notifications": "~0.32.2",
69
69
  "expo-print": "~15.0.2",
70
70
  "expo-live-photo": "~1.0.2",
71
- "expo-router": "~6.0.0-beta.2",
71
+ "expo-router": "~6.0.0-beta.4",
72
72
  "expo-screen-capture": "~8.0.2",
73
73
  "expo-screen-orientation": "~9.0.2",
74
74
  "expo-secure-store": "~15.0.2",
@@ -76,15 +76,15 @@
76
76
  "expo-sharing": "~14.0.2",
77
77
  "expo-sms": "~14.0.2",
78
78
  "expo-speech": "~14.0.2",
79
- "expo-splash-screen": "~31.0.2",
80
- "expo-sqlite": "~16.0.2",
81
- "expo-status-bar": "~3.0.2",
79
+ "expo-splash-screen": "~31.0.3",
80
+ "expo-sqlite": "~16.0.3",
81
+ "expo-status-bar": "~3.0.3",
82
82
  "expo-store-review": "~9.0.2",
83
83
  "expo-symbols": "~1.0.2",
84
84
  "expo-system-ui": "~6.0.2",
85
85
  "expo-task-manager": "~14.0.2",
86
86
  "expo-tracking-transparency": "~6.0.2",
87
- "expo-updates": "~29.0.2",
87
+ "expo-updates": "~29.0.3",
88
88
  "expo-video-thumbnails": "~10.0.2",
89
89
  "expo-video": "~3.0.2",
90
90
  "expo-web-browser": "~15.0.2",
@@ -94,7 +94,6 @@
94
94
  "react-dom": "19.1.0",
95
95
  "react-native": "0.81.0",
96
96
  "react-native-web": "~0.21.0",
97
- "react-native-edge-to-edge": "1.6.0",
98
97
  "react-native-gesture-handler": "~2.28.0",
99
98
  "react-native-get-random-values": "~1.11.0",
100
99
  "react-native-keyboard-controller": "1.18.4",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo",
3
- "version": "54.0.0-preview.2",
3
+ "version": "54.0.0-preview.4",
4
4
  "description": "The Expo SDK",
5
5
  "main": "src/Expo.ts",
6
6
  "module": "src/Expo.ts",
@@ -75,13 +75,13 @@
75
75
  "homepage": "https://github.com/expo/expo/tree/main/packages/expo",
76
76
  "dependencies": {
77
77
  "@babel/runtime": "^7.20.0",
78
- "@expo/cli": "0.25.2",
79
- "@expo/config": "~12.0.2",
80
- "@expo/config-plugins": "~11.0.2",
78
+ "@expo/cli": "0.26.0",
79
+ "@expo/config": "~12.0.3",
80
+ "@expo/config-plugins": "~11.0.3",
81
81
  "@expo/devtools": "0.1.2",
82
82
  "@expo/fingerprint": "0.14.2",
83
83
  "@expo/metro": "~0.1.1",
84
- "@expo/metro-config": "0.21.2",
84
+ "@expo/metro-config": "0.21.3",
85
85
  "@expo/vector-icons": "^14.0.0",
86
86
  "babel-preset-expo": "~14.0.2",
87
87
  "expo-asset": "~12.0.2",
@@ -89,9 +89,8 @@
89
89
  "expo-font": "~14.0.2",
90
90
  "expo-keep-awake": "~15.0.2",
91
91
  "expo-modules-autolinking": "3.0.2",
92
- "expo-modules-core": "3.0.2",
92
+ "expo-modules-core": "3.0.4",
93
93
  "pretty-format": "^29.7.0",
94
- "react-native-edge-to-edge": "1.6.0",
95
94
  "react-refresh": "^0.14.2",
96
95
  "whatwg-url-without-unicode": "8.0.0-3"
97
96
  },
@@ -123,5 +122,5 @@
123
122
  "optional": true
124
123
  }
125
124
  },
126
- "gitHead": "eaa9b645058cf2233fbb27bb21a19bc605c90a88"
125
+ "gitHead": "de2ce610a804a8f3ddcee6ea9474543e81b903bd"
127
126
  }
package/template.tgz CHANGED
Binary file