diff --git a/src/screens/RecordingScreen.tsx b/src/screens/RecordingScreen.tsx index b7f2ad1..03861e1 100644 --- a/src/screens/RecordingScreen.tsx +++ b/src/screens/RecordingScreen.tsx @@ -1,23 +1,34 @@ import React, { useEffect, useRef, useState, useMemo } from 'react'; -import { View, Text, StyleSheet, TouchableOpacity, Alert } from 'react-native'; +import { View, Text, StyleSheet, TouchableOpacity, Alert, Modal, TextInput, Pressable } from 'react-native'; import { useNavigation } from '@react-navigation/native'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { activateKeepAwakeAsync, deactivateKeepAwake } from 'expo-keep-awake'; -import { Map, Camera, GeoJSONSource, Layer, UserLocation } from '@maplibre/maplibre-react-native'; +import { Map, Camera, GeoJSONSource, Layer, UserLocation, type MapRef } from '@maplibre/maplibre-react-native'; import type { LineLayerStyle, CircleLayerStyle } from '@maplibre/maplibre-react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { useRecordingStore } from '../store/recording'; import { startGpsRecording, stopGpsRecording, requestLocationPermissions, requestForegroundLocation } from '../services/gps'; import { RootStackParamList } from '../types'; import { colors } from '../theme'; import { useTheme } from '../ThemeContext'; import { MAP_STYLES } from '../mapStyles'; +import { downloadRegion, formatBytes, expandBounds, OFFLINE_STYLE_URL } from '../services/offline'; type Nav = NativeStackNavigationProp; export function RecordingScreen() { const nav = useNavigation