From 7503d83eaa5ac35b06c7223ff6395f9dadc63c0f Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Thu, 21 Mar 2024 11:53:01 -0500 Subject: [PATCH] Fix android splash jump (#3316) * Setup translucent status bar of splash screen on android (#3300) Co-authored-by: Eric Bailey * Fix conflict better --------- Co-authored-by: Eiichi Yoshikawa --- app.config.js | 1 + ...dSplashScreenStatusBarTranslucentPlugin.js | 28 +++++++++++++++++++ src/App.native.tsx | 3 -- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js diff --git a/app.config.js b/app.config.js index dcbb0e45..c151862a 100644 --- a/app.config.js +++ b/app.config.js @@ -161,6 +161,7 @@ module.exports = function (config) { './plugins/withAndroidManifestPlugin.js', './plugins/withAndroidManifestFCMIconPlugin.js', './plugins/withAndroidStylesWindowBackgroundPlugin.js', + './plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js', './plugins/shareExtension/withShareExtensions.js', ].filter(Boolean), extra: { diff --git a/plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js b/plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js new file mode 100644 index 00000000..704ead05 --- /dev/null +++ b/plugins/withAndroidSplashScreenStatusBarTranslucentPlugin.js @@ -0,0 +1,28 @@ +const {withStringsXml, AndroidConfig} = require('@expo/config-plugins') + +module.exports = function withAndroidSplashScreenStatusBarTranslucentPlugin( + appConfig, +) { + return withStringsXml(appConfig, function (decoratedAppConfig) { + try { + decoratedAppConfig.modResults = AndroidConfig.Strings.setStringItem( + [ + { + _: 'true', + $: { + name: 'expo_splash_screen_status_bar_translucent', + translatable: 'false', + }, + }, + ], + decoratedAppConfig.modResults, + ) + } catch (e) { + console.error( + `withAndroidSplashScreenStatusBarTranslucentPlugin failed`, + e, + ) + } + return decoratedAppConfig + }) +} diff --git a/src/App.native.tsx b/src/App.native.tsx index f2e0c4f7..d6e726a5 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -10,7 +10,6 @@ import { SafeAreaProvider, } from 'react-native-safe-area-context' import * as SplashScreen from 'expo-splash-screen' -import {StatusBar} from 'expo-status-bar' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {PersistQueryClientProvider} from '@tanstack/react-query-persist-client' @@ -28,7 +27,6 @@ import { } from 'lib/react-query' import {s} from 'lib/styles' import {ThemeProvider} from 'lib/ThemeContext' -import {isAndroid} from 'platform/detection' import {Provider as DialogStateProvider} from 'state/dialogs' import {Provider as InvitesStateProvider} from 'state/invites' import {Provider as LightboxStateProvider} from 'state/lightbox' @@ -76,7 +74,6 @@ function InnerApp() { return ( - {isAndroid && }