diff options
Diffstat (limited to 'src/App.native.tsx')
-rw-r--r-- | src/App.native.tsx | 76 |
1 files changed, 45 insertions, 31 deletions
diff --git a/src/App.native.tsx b/src/App.native.tsx index 2ec666e2c..e2fcd6d2e 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -29,6 +29,11 @@ import {Provider as A11yProvider} from '#/state/a11y' import {Provider as MutedThreadsProvider} from '#/state/cache/thread-mutes' import {Provider as DialogStateProvider} from '#/state/dialogs' import {listenSessionDropped} from '#/state/events' +import { + beginResolveGeolocation, + ensureGeolocationResolved, + Provider as GeolocationProvider, +} from '#/state/geolocation' import {Provider as InvitesStateProvider} from '#/state/invites' import {Provider as LightboxStateProvider} from '#/state/lightbox' import {MessagesProvider} from '#/state/messages' @@ -66,6 +71,11 @@ import {BackgroundNotificationPreferencesProvider} from '../modules/expo-backgro SplashScreen.preventAutoHideAsync() +/** + * Begin geolocation ASAP + */ +beginResolveGeolocation() + function InnerApp() { const [isReady, setIsReady] = React.useState(false) const {currentAccount} = useSession() @@ -158,7 +168,9 @@ function App() { const [isReady, setReady] = useState(false) React.useEffect(() => { - initPersistedState().then(() => setReady(true)) + Promise.all([initPersistedState(), ensureGeolocationResolved()]).then(() => + setReady(true), + ) }, []) if (!isReady) { @@ -170,36 +182,38 @@ function App() { * that is set up in the InnerApp component above. */ return ( - <A11yProvider> - <KeyboardProvider enabled={false} statusBarTranslucent={true}> - <SessionProvider> - <PrefsStateProvider> - <I18nProvider> - <ShellStateProvider> - <InvitesStateProvider> - <ModalStateProvider> - <DialogStateProvider> - <LightboxStateProvider> - <PortalProvider> - <StarterPackProvider> - <SafeAreaProvider - initialMetrics={initialWindowMetrics}> - <IntentDialogProvider> - <InnerApp /> - </IntentDialogProvider> - </SafeAreaProvider> - </StarterPackProvider> - </PortalProvider> - </LightboxStateProvider> - </DialogStateProvider> - </ModalStateProvider> - </InvitesStateProvider> - </ShellStateProvider> - </I18nProvider> - </PrefsStateProvider> - </SessionProvider> - </KeyboardProvider> - </A11yProvider> + <GeolocationProvider> + <A11yProvider> + <KeyboardProvider enabled={false} statusBarTranslucent={true}> + <SessionProvider> + <PrefsStateProvider> + <I18nProvider> + <ShellStateProvider> + <InvitesStateProvider> + <ModalStateProvider> + <DialogStateProvider> + <LightboxStateProvider> + <PortalProvider> + <StarterPackProvider> + <SafeAreaProvider + initialMetrics={initialWindowMetrics}> + <IntentDialogProvider> + <InnerApp /> + </IntentDialogProvider> + </SafeAreaProvider> + </StarterPackProvider> + </PortalProvider> + </LightboxStateProvider> + </DialogStateProvider> + </ModalStateProvider> + </InvitesStateProvider> + </ShellStateProvider> + </I18nProvider> + </PrefsStateProvider> + </SessionProvider> + </KeyboardProvider> + </A11yProvider> + </GeolocationProvider> ) } |