Browse Source

attempt to fix android bug number 2

Viktoriia 1 year ago
parent
commit
ae2f31a901
2 changed files with 10 additions and 11 deletions
  1. 3 7
      Route.tsx
  2. 7 4
      src/database/geojsonService/index.ts

+ 3 - 7
Route.tsx

@@ -93,7 +93,6 @@ const Route = () => {
     'montserrat-400': require('./assets/fonts/Montserrat-Regular.ttf')
   });
   const [dbLoaded, setDbLoaded] = useState(false);
-  const [serverReady, setServerReady] = useState(false);
 
   useEffect(() => {
     const prepareApp = async () => {
@@ -101,7 +100,6 @@ const Route = () => {
       await findFastestServer();
       await openDatabases();
       setDbLoaded(true);
-      setServerReady(true);
     };
 
     const findFastestServer = async () => {
@@ -118,14 +116,14 @@ const Route = () => {
 
   useEffect(() => {
     const hideSplashScreen = async () => {
-      if (fontsLoaded && dbLoaded && serverReady) {
+      if (fontsLoaded && dbLoaded) {
         await SplashScreen.hideAsync();
         await setupDatabaseAndSync();
       }
     };
 
     hideSplashScreen();
-  }, [fontsLoaded, dbLoaded, serverReady]);
+  }, [fontsLoaded, dbLoaded]);
 
   const checkTokenAndUpdate = async () => {
     const storedToken = storage.get('deviceToken', StoreType.STRING);
@@ -165,9 +163,7 @@ const Route = () => {
 
   const regionViewScreenOptions = {
     ...screenOptions,
-    ...(Platform.OS === 'ios'
-      ? TransitionPresets.ModalSlideFromBottomIOS
-      : {}),
+    ...(Platform.OS === 'ios' ? TransitionPresets.ModalSlideFromBottomIOS : {}),
     contentStyle: {
       flex: 1
     }

+ 7 - 4
src/database/geojsonService/index.ts

@@ -2,6 +2,8 @@ import * as FileSystem from 'expo-file-system';
 import { Asset } from 'expo-asset';
 import { API_HOST } from 'src/constants';
 import axios from 'axios';
+import NetInfo from '@react-native-community/netinfo';
+import staticMQP from '../../../assets/geojson/mqp.json';
 
 const jsonFileName = 'mqp.json';
 const jsonFileUri = `${FileSystem.documentDirectory}${jsonFileName}`;
@@ -15,10 +17,7 @@ const fetchLocalJsonData = async () => {
       const json = await FileSystem.readAsStringAsync(jsonFileUri);
       return JSON.parse(json);
     } else {
-      const asset = Asset.fromModule(require('../../../assets/geojson/mqp.json'));
-      await asset.downloadAsync();
-      const json = await FileSystem.readAsStringAsync(asset?.localUri as string);
-      return JSON.parse(json);
+      return staticMQP;
     }
   } catch (error) {
     console.error('Failed to load local JSON data:', error);
@@ -35,8 +34,12 @@ const saveJsonDataToLocal = async (data: any) => {
 };
 
 export const fetchJsonData = async () => {
+  const state = await NetInfo.fetch();
   if (jsonData) {
     return jsonData;
+  } else if (state.type === 'cellular') {
+    jsonData = await fetchLocalJsonData();
+    return jsonData;
   }
 
   try {