2021-02-11 23:43:21 +01:00
|
|
|
import React, { useEffect } from 'react';
|
2020-06-17 14:58:04 +02:00
|
|
|
import { Provider } from 'react-redux';
|
2021-12-31 15:04:37 +01:00
|
|
|
import TrackPlayer, { Capability } from 'react-native-track-player';
|
2020-06-17 14:58:04 +02:00
|
|
|
import { PersistGate } from 'redux-persist/integration/react';
|
2020-06-16 17:51:51 +02:00
|
|
|
import Routes from '../screens';
|
2020-06-21 10:30:41 +02:00
|
|
|
import store, { persistedStore } from 'store';
|
2020-07-26 14:45:32 +02:00
|
|
|
import {
|
|
|
|
|
NavigationContainer,
|
|
|
|
|
DefaultTheme,
|
|
|
|
|
DarkTheme,
|
|
|
|
|
} from '@react-navigation/native';
|
2021-02-11 23:43:21 +01:00
|
|
|
import { useColorScheme } from 'react-native';
|
2021-02-13 12:14:57 +01:00
|
|
|
import { ColorSchemeContext, themes } from './Colors';
|
2022-01-15 17:25:24 +01:00
|
|
|
import DownloadManager from './DownloadManager';
|
2022-05-05 03:30:51 +02:00
|
|
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
2021-04-03 14:49:49 +02:00
|
|
|
// import ErrorReportingAlert from 'utility/ErrorReportingAlert';
|
2020-06-16 17:51:51 +02:00
|
|
|
|
2021-02-11 23:43:21 +01:00
|
|
|
export default function App(): JSX.Element {
|
|
|
|
|
const colorScheme = useColorScheme();
|
2021-02-13 15:34:43 +01:00
|
|
|
// const colorScheme = 'dark';
|
2021-02-13 12:14:57 +01:00
|
|
|
const theme = themes[colorScheme || 'light'];
|
2020-06-16 17:51:51 +02:00
|
|
|
|
2021-02-11 23:43:21 +01:00
|
|
|
useEffect(() => {
|
|
|
|
|
async function setupTrackPlayer() {
|
|
|
|
|
await TrackPlayer.setupPlayer();
|
|
|
|
|
await TrackPlayer.updateOptions({
|
|
|
|
|
capabilities: [
|
2021-12-31 15:04:37 +01:00
|
|
|
Capability.Play,
|
|
|
|
|
Capability.Pause,
|
|
|
|
|
Capability.SkipToNext,
|
|
|
|
|
Capability.SkipToPrevious,
|
|
|
|
|
Capability.Stop,
|
|
|
|
|
Capability.SeekTo,
|
2022-05-05 03:30:51 +02:00
|
|
|
],
|
|
|
|
|
stopWithApp: true
|
2021-02-11 23:43:21 +01:00
|
|
|
});
|
2020-06-16 17:51:51 +02:00
|
|
|
}
|
2021-02-11 23:43:21 +01:00
|
|
|
setupTrackPlayer();
|
|
|
|
|
}, []);
|
2020-06-16 17:51:51 +02:00
|
|
|
|
2021-02-11 23:43:21 +01:00
|
|
|
return (
|
|
|
|
|
<Provider store={store}>
|
|
|
|
|
<PersistGate loading={null} persistor={persistedStore}>
|
2021-02-13 12:14:57 +01:00
|
|
|
<ColorSchemeContext.Provider value={theme}>
|
|
|
|
|
<NavigationContainer theme={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
|
2022-05-05 03:30:51 +02:00
|
|
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
|
|
|
<Routes />
|
|
|
|
|
<DownloadManager />
|
|
|
|
|
</GestureHandlerRootView>
|
2021-02-13 12:14:57 +01:00
|
|
|
</NavigationContainer>
|
|
|
|
|
</ColorSchemeContext.Provider>
|
2021-02-11 23:43:21 +01:00
|
|
|
</PersistGate>
|
|
|
|
|
</Provider>
|
|
|
|
|
);
|
2020-06-16 17:51:51 +02:00
|
|
|
}
|