[go] Improve the incompatible SDK version error screen (#24310)# Why We want to improve the incompatible SDK error screen in Expo Go, because we will be supporting only two SDK versions, so mor
[go] Improve the incompatible SDK version error screen (#24310)# Why We want to improve the incompatible SDK error screen in Expo Go, because we will be supporting only two SDK versions, so more people will see it. # How - The header is now descriptive instead of generic "Something went wrong" - Updated the message to provide more information - The message now contains a link to a docs page - On iOS it was created with attributed string and replacing the UILabel with UITextView - On Android we embed html hyperlink into the message and then render the text as HTML - Added update instructions into the docs page. Also added instructions on how to install an older version of Expo Go. # Test Plan Tested in Go on iOS 16 and Android SDK 33, 34 <img width="190" alt="image" src="https://github.com/expo/expo/assets/31368152/c79ec613-8f19-4aef-91d0-99c682124f31"> <img width="190" alt="image" src="https://github.com/expo/expo/assets/31368152/292d8fcd-5532-4ac9-828a-6d870c396040"> <img width="190" alt="image" src="https://github.com/expo/expo/assets/31368152/d94eff4e-0113-4cea-a5ee-64a9284fb254"> <img width="190" alt="image" src="https://github.com/expo/expo/assets/31368152/6c819e52-2cc5-4e6f-9614-0bb22427e61c"> --------- Co-authored-by: Brent Vatne <[email protected]>
show more ...
[android] Remove unnecessary version checks (#24203)# Why This PR is related to #24201, it removes unnecessary version checks # How Remove version check logic for SDK's < 23 # Test Pla
[android] Remove unnecessary version checks (#24203)# Why This PR is related to #24201, it removes unnecessary version checks # How Remove version check logic for SDK's < 23 # Test Plan Tested in Bare Expo in Android 13 simulator
[go] Load embedded bundle and manifest in release builds (#24412)
[tools] Switch expo home publishing to EAS update (#24216)
[go][Android] Create a `ModuleProvider` for home app (#23708)# Why Creates a dedicated `ModuleProvider` for the home app. # How We're currently initializing all modules written in the new
[go][Android] Create a `ModuleProvider` for home app (#23708)# Why Creates a dedicated `ModuleProvider` for the home app. # How We're currently initializing all modules written in the new API when creating a home bridge. It's unnecessary, so I've made a dedicated `ModuleProvider` for the main app. Also, this change will allow us to add the Expo Go specific module to the home app. # Test Plan - expo go ✅
[go] fix network inspector crash on android (#23436)# Why another fix for android expo go for network inspector ``` Fatal Exception: java.lang.IllegalStateException: network interceptor or.c
[go] fix network inspector crash on android (#23436)# Why another fix for android expo go for network inspector ``` Fatal Exception: java.lang.IllegalStateException: network interceptor or.c0@2ba75f9 must call proceed() exactly once ``` # How looks like #23350 does not fix the root cause, i can finally reproduce the problem and getting the backtrace: okhttp internally will catch the IOException and cancel the request. however, calling through the `RNObject` with reflection, we will catch the `InvocationTargetException` and suppress the exception. to make okhttp interceptor works expectedly, we should throw out the IOException, so this pr introduces a `RNObject.callWithThrowable` to throw out the exceptions. # Test Plan it seems easier to reproduce this problem from clean state: ```sh $ adb shell pm clear host.exp.exponent $ adb shell am start -n host.exp.exponent/.experience.HomeActivity # on sdk49 blank project, press `a` to launch app in android expo-go ```
[go] fix network inspector stability on android (#23158)# Why fix some stability issues for network inspector on android expo go close ENG-9111 # How - disable network inspector when devS
[go] fix network inspector stability on android (#23158)# Why fix some stability issues for network inspector on android expo go close ENG-9111 # How - disable network inspector when devSupportEnabled=false. this case happens when loading bundles without dev support, e.g. published updates. - original network inspector is broken on versioned expo go. because we add the okhttp interceptors from unversioned classes, but on **ReactNativeActivity** we use the versioned classes to set the delegate. # Test Plan use versioned release expo go to test - [x] sdk 49 project with network inspector - [x] sdk 49 published project with network requests -> should not crash - [x] sdk 48 project with network requests -> should not crash
[go][android] fix textinput crash in home (#21368)# Why fix textinput crash on expo go home close ENG-7643 # How in the ReactRootView, the context is actually `MainApplication`, which is
[go][android] fix textinput crash in home (#21368)# Why fix textinput crash on expo go home close ENG-7643 # How in the ReactRootView, the context is actually `MainApplication`, which is not quite correct. We should pass Activity to views instead. # Test Plan using Android 13 emulator to click textinput in expo go home
[home] use hermes engine (#21011)# Why close ENG-7162 # How - [android] support hermes in loading home app - [home] use hermes engine # Test Plan - unversioned android/ios expo go +
[home] use hermes engine (#21011)# Why close ENG-7162 # How - [android] support hermes in loading home app - [home] use hermes engine # Test Plan - unversioned android/ios expo go + local home + `console.log(globalThis.HermesInternal)`
[iOS][Android] Update reanimated to `2.11.0` (#19602)# Why Closes ENG-6530. # How - Adjusted the vendored process to use the new version of the script on Android. - Run `et update-vendor
[iOS][Android] Update reanimated to `2.11.0` (#19602)# Why Closes ENG-6530. # How - Adjusted the vendored process to use the new version of the script on Android. - Run `et update-vendored-module -m react-native-reanimated` - Made sure that the integration between the reanimated and the gesture-handler still works # Test Plan - bare-expo with NCL ✅
[android] Fix build errors after #18168 removed packages (#18219)# Why fix android expo go build errors from #18168 removed some packages # How - removed integration code - port `BundleJS
[android] Fix build errors after #18168 removed packages (#18219)# Why fix android expo go build errors from #18168 removed some packages # How - removed integration code - port `BundleJSONConverter` from internal facebook sdk to our code - add necessary 3rd party sdks to versioned sdk dependencies. that is to make sure sdk 44/45 still works # Test Plan - unversioned android expo go + NCL - versioned android expo go + NCL
[android] Fix random crash from retrieving the finishing NotificationForwarderActivity (#17982)# Why regression from #17974 because the call flow is NotificationForwarderActivity -> start activi
[android] Fix random crash from retrieving the finishing NotificationForwarderActivity (#17982)# Why regression from #17974 because the call flow is NotificationForwarderActivity -> start activity -> finish(). there's chance to retrieve the finishing task in kernel and causes NPE or unmarshalling exception. # How add try-catch to match the existingTask # Test Plan click the scheduled notification in expo go
[notifications] Fix opening wrong activity for expo go (#17751)# Why fix #17686 for expo go to open wrong activity # How from #17686 the PendingIntent for foreground activity missed some i
[notifications] Fix opening wrong activity for expo go (#17751)# Why fix #17686 for expo go to open wrong activity # How from #17686 the PendingIntent for foreground activity missed some intent extra. we should also call `NotificationsService.setNotificationResponseToIntent` like the original implementation: https://github.com/expo/expo/blob/6097718a9a1b69c672a3845336c42fb86da13c61/packages/expo-notifications/android/src/main/java/expo/modules/notifications/service/delegates/ExpoHandlingDelegate.kt#L123 # Test Plan unversioned expo go + NCL "schedule notification for 10 seconds from now", pressing home key to background the app and click the notification after 10 seconds.
[android][sensors] Fix high sampling rate exception on Android S (#17177)# Why starting in android S (API level 31), [to use the `SensorManager.SENSOR_DELAY_FASTEST` update interval, `HIGH_SAMPL
[android][sensors] Fix high sampling rate exception on Android S (#17177)# Why starting in android S (API level 31), [to use the `SensorManager.SENSOR_DELAY_FASTEST` update interval, `HIGH_SAMPLING_RATE_SENSORS` is required.](https://developer.android.com/about/versions/12/reference/compat-framework-changes#change_id_sampling_rate_sensors_permission) close ENG-4735 # How - if AndroidManifest.xml has the `HIGH_SAMPLING_RATE_SENSORS` permission, we keep to use the `SENSOR_DELAY_FASTEST`. otherwise, we fallback to use the `SENSOR_DELAY_NORMAL` (around 200ms). - add `HIGH_SAMPLING_RATE_SENSORS` to expo go. - for standalone apps, to remove `HIGH_SAMPLING_RATE_SENSORS` as optional permission. i will have a separated pr for xdl. # Test Plan Android S + expo go + NCL AccelerometerScreen Co-authored-by: Bartłomiej Klocek <[email protected]>
[expo-updates][android] Make onBundleCompleted non-nullable (#14838)
[android] Use JSONObjectUtils in client code (#14272)
[android][expo-updates] Remove unused legacy manifest storage from shared preferences (#14220)
[android][kernel] Add u.expo.dev to HTTPS_HOSTS (#14223)
[expo-manifests] Rename RawManifest -> Manifest (#14194)
[expo-updates] Factor out raw manifests into their own package (#14183)
[android] Remove old manifest and bundle loading code (#14091)
[android] Kotlinize RNObject and KernelModule (#14042)
[android] Kotlinize DI (#14039)
[android] Kotlinize notification utils (#14020)
[android] Kotlinize storage (#14018)
123456