import * as FileSystem from 'expo-file-system'; export interface AppSettings { countdownDuration: number; // in seconds printerIp: string; adminPassword: string; kioskModeEnabled: boolean; } const SETTINGS_FILE = `${FileSystem.documentDirectory}settings.json`; const DEFAULT_SETTINGS: AppSettings = { countdownDuration: 3, printerIp: '192.168.1.100', adminPassword: '1234', kioskModeEnabled: false, }; /** * Load settings from persistent storage. */ export async function loadSettings(): Promise { try { const fileInfo = await FileSystem.getInfoAsync(SETTINGS_FILE); if (fileInfo.exists) { const content = await FileSystem.readAsStringAsync(SETTINGS_FILE); const parsed = JSON.parse(content); return { ...DEFAULT_SETTINGS, ...parsed }; } } catch (e) { console.error('Failed to load settings, using defaults:', e); } return DEFAULT_SETTINGS; } /** * Save settings to persistent storage. */ export async function saveSettings(settings: AppSettings): Promise { try { const content = JSON.stringify(settings, null, 2); await FileSystem.writeAsStringAsync(SETTINGS_FILE, content); console.log('Settings saved successfully:', content); } catch (e) { console.error('Failed to save settings:', e); throw e; } }