Revision Date Author Comments
# 3ef102f0 14-Jul-2022 Kudo Chien <[email protected]>

[splash-screen] fix splash screen doesn't show when reloading apps (#18229)

# Why

follow up with https://github.com/expo/expo/pull/17592#issuecomment-1141256478 and fix the issue where splash scr

[splash-screen] fix splash screen doesn't show when reloading apps (#18229)

# Why

follow up with https://github.com/expo/expo/pull/17592#issuecomment-1141256478 and fix the issue where splash screen doesn't show when reloading apps.
fix #12000

# How

same approach as #17592 but introducing a generic `EXSplashScreenOptions` for the force show feature.

# Test Plan

test with the awesome repro example from #17592: https://github.com/ilyausorov/expo-splash-screen-updates-fix-demo

1. copy the patches to `node_modules/expo-splash-screen`
2. `EXPO_USE_SOURCE=1 pod install`
3. npx expo run:ios

also tested the splash screen functionalities from bare-expo and expo go

show more ...


# c4799eb3 31-Aug-2021 Kudo Chien <[email protected]>

[splash-screen] Fix yet another matching UIAlertController issue (#14213)

# Why

fix #14099, yet another case for starting without attached debugger and believed to be an old issue lasting for yea

[splash-screen] Fix yet another matching UIAlertController issue (#14213)

# Why

fix #14099, yet another case for starting without attached debugger and believed to be an old issue lasting for years.

# How

if RCTRootView not found and fallback to a currentViewController, we still need to check the matching UIViewController should not be an UIAlertController.

# Test Plan

this is a race condition issue and cannot reproduced on bare-expo. we should use a bare project instead.

1. `expo init exsplash` # select bare
2. add alert view

```diff
--- a/ios/exsplash/AppDelegate.m
+++ b/ios/exsplash/AppDelegate.m
@@ -58,6 +58,24 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(

[super application:application didFinishLaunchingWithOptions:launchOptions];

+ // BEGIN ADDED CODE
+ UIAlertController* alert = [UIAlertController
+ alertControllerWithTitle:@"Test Alert"
+ message:@"Test message"
+ preferredStyle:UIAlertControllerStyleAlert];
+
+ UIAlertAction* cancelButton = [UIAlertAction
+ actionWithTitle:@"Cancel"
+ style:UIAlertActionStyleDefault
+ handler:^(UIAlertAction * action) {
+ }];
+
+ [alert addAction:cancelButton];
+
+ #define ROOTVIEW [[[UIApplication sharedApplication] keyWindow] rootViewController]
+ [ROOTVIEW presentViewController:alert animated:YES completion:^{}];
+ // END ADDED CODE
+
return YES;
}

```

3. `yarn ios` # or `expo run:ios`

show more ...


# 4014c235 30-Aug-2021 Kudo Chien <[email protected]>

[splash-screen] Fix splash screen not dismissed if alert appearing (#14208)

# Why

fixes #14099

# How

if the `presentedViewController` is an `UIAlertController`, we should not return as curr

[splash-screen] Fix splash screen not dismissed if alert appearing (#14208)

# Why

fixes #14099

# How

if the `presentedViewController` is an `UIAlertController`, we should not return as current view controller. otherwise, `onAppContentDidAppear` will get the UIAlertController and show `No native splash screen registered for given view controller. Call 'SplashScreen.show' for given view controller first.` error.

# Test Plan

test bare-expo with this patch (thanks @srmagura to provide the minimal repros)

```diff
--- a/apps/bare-expo/ios/BareExpo/AppDelegate.swift
+++ b/apps/bare-expo/ios/BareExpo/AppDelegate.swift
@@ -37,6 +37,16 @@ class AppDelegate: AppDelegateWrapper {

super.application(application, didFinishLaunchingWithOptions: launchOptions)

+ // BEGIN ADDED CODE
+ let alert = UIAlertController(title: "Test Alert", message: "Test message", preferredStyle: UIAlertController.Style.alert)
+ let cancelButton = UIAlertAction(title: "Cancel", style: UIAlertAction.Style.default) { UIAlertAction in
+ }
+ alert.addAction(cancelButton)
+ let rootView = application.keyWindow?.rootViewController
+ rootView?.present(alert, animated: true) {
+ }
+ // END ADDED CODE
+
return true
}

```

show more ...


# efd75dec 16-Aug-2021 Tomasz Sapeta <[email protected]>

[ios] Migrate all remaining native code


# fdb3df7a 29-Jun-2021 Eric Samelson <[email protected]>

[expo-splash-screen][ios] search for viewController with a RCTRootView (#13429)


# 94cbc77e 25-Mar-2020 Bartłomiej Bukowski <[email protected]>

[splash-screen][bare][iOS][Android] Create expo-splash-screen (#7066)

* [splash-screen][bare][Android] Create splash screen mechanism

Unimodule features on Android:
- SplashScreen is mounted un

[splash-screen][bare][iOS][Android] Create expo-splash-screen (#7066)

* [splash-screen][bare][Android] Create splash screen mechanism

Unimodule features on Android:
- SplashScreen is mounted under ContentView
- SplashScreen's image & backgroundColor are configurable
- SplashScreen would automatically hide when view hierarchy is mounted in located RootView
- SplashScreen would appear again when RootView has no children again ('reload' behaviour from react-native)

* [splash-screnn][bare][iOS][Android] Create unimodule from template

* [splash-screen][bare][iOS] Create splash screen mechanism

Unimodule features on iOS:
- SplashScreen is mounted per ViewController
- SplashScreen's image & backgroundColor are configurable via .sotryboard file
- SplashScreen would automatically hide when ContentDidAppear notification is published
- SplashScreen would appear again when bridge is reloaded ('reload' behaviour from react-native)

* [splash-screen][Android] Adjust PR according to comments

* [splash-screen][Android][docs] Adjust PR according to comments and concerns & provide documentation for Android

* [splash-screen][iOS] Adjust PR according to comments

* [splash-screen][iOS][docs] Provide installation and configuration instructions

* [splash-screen][iOS] Restore unintetionally deleted SplashScreenView creation

* [splash-screen][iOS][Android][docs] Apply PR suggestions

* [splash-screen][iOS][Android] Make 'preventAutoHide' and 'hide' methods idempotent

* [splash-screen][Android] Exclude from Expoview

* [splash-screen][docs] Adjust docs according to PR suggestions

* [splash-screen][bare-expo] Ignore splash-screen package in bare-expo

* [splash-screen] Change version to 0.1.0

show more ...