import React, { useEffect, useRef, useState, useMemo } from 'react'; import { View, Text, StyleSheet, TouchableOpacity, Alert } 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 type { LineLayerStyle } from '@maplibre/maplibre-react-native'; import { useRecordingStore } from '../store/recording'; import { startGpsRecording, stopGpsRecording, requestLocationPermissions } from '../services/gps'; import { RootStackParamList } from '../types'; import { colors } from '../theme'; import { useTheme } from '../ThemeContext'; const MAP_STYLE = 'https://tiles.openfreemap.org/styles/liberty'; type Nav = NativeStackNavigationProp; export function RecordingScreen() { const nav = useNavigation