| #
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 ...
|