From f2bfd4bbc65989967c8a8acff5ca460edd2aa548 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 30 May 2026 20:19:16 +0200 Subject: [PATCH] feat(app): Background-GPS als opt-in Settings-Toggle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Stefan-Anforderung: GPS soll auch im Hintergrund liefern (Auto-Szenarien, Handy-Tasche), aber NUR fuer Power-User die das bewusst aktivieren. Mama-Tauglichkeit bleibt erhalten — Default AUS, keine Surprise-Permission. Aenderungen: AndroidManifest: - ACCESS_BACKGROUND_LOCATION Permission - FOREGROUND_SERVICE_LOCATION Permission - AriaPlaybackService foregroundServiceType erweitert um |location (vorher: mediaPlayback|microphone) backgroundAudio.ts: - Neuer Slot 'location' zwischen 'wake' und 'background' in der Prioritaeten-Liste. Notification zeigt entsprechend. gpsTracking.ts: - isBackgroundGpsEnabled() / setBackgroundGpsEnabled() AsyncStorage-Helper - ensureBackgroundLocationPermission() pruefte ACCESS_BACKGROUND_LOCATION und oeffnet Android-Settings wenn fehlend (auf Android 10+ kann das NICHT ueber den normalen Permission-Dialog angefordert werden) - start(): wenn BG-GPS enabled, acquireBackgroundAudio('location') → Foreground-Service hochziehen mit type=location - stop(): releaseBackgroundAudio('location') SettingsScreen.tsx: - Neuer Toggle "GPS auch im Hintergrund" direkt unter dem GPS-Tracking-Toggle, rot (#FF3B30) statt orange weil's eine stark privacy-relevante Einstellung ist - Erklaerungs-Text zu Android-Settings + Akku-Verbrauch - Beim Aktivieren: Permission-Check, ggf. Android-Settings oeffnen - Wenn Tracking bereits laeuft: neustart damit location-Slot greift APK neu bauen erforderlich. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../android/app/src/main/AndroidManifest.xml | 11 +++- android/src/screens/SettingsScreen.tsx | 55 +++++++++++++++- android/src/services/backgroundAudio.ts | 7 +- android/src/services/gpsTracking.ts | 65 ++++++++++++++++++- 4 files changed, 131 insertions(+), 7 deletions(-) diff --git a/android/android/app/src/main/AndroidManifest.xml b/android/android/app/src/main/AndroidManifest.xml index b8d0d85..1aeb11d 100644 --- a/android/android/app/src/main/AndroidManifest.xml +++ b/android/android/app/src/main/AndroidManifest.xml @@ -9,13 +9,20 @@ + + + Aufnahme im Gespraechsmodus). LOCATION wird nur aktiv wenn der + User Background-GPS in Settings einschaltet. --> +