A program célja és küldetése
A Stop! Átkelőhely egy professzionális, háttérben futó védelmi és tájékoztató rendszer gyalogosok számára. A megoldás kettős küldetést teljesít:
- Balesetmegelőzés: figyelmezteti a mobileszközt használó gyalogosokat a közeledő városi akadályokra.
- Akadálymentesítés: élőszavas támogatást ad vak és gyengénlátó felhasználóknak.
Alapelv a térképmentes tájékozódás: az alkalmazás szenzoradatok és az OpenStreetMap (OSM) alapján, valós időben elemzi a veszélyforrásokat.
Funkcionális specifikáció
1) Intelligens környezetelemzés
- Dinamikus lekérdezés: az app 500 x 500 méteres pufferben dolgozza fel az OSM adatokat.
- Felismert akadályok: zebra, lépcső, járdaszegély, forgalomterelő oszlop, korlát, villamosvágány, utcai pad, szemetes, lámpaoszlop.
- Irányérzékenység: csak a haladási irányba eső (30°-os sáv) és releváns távolságon belüli akadályokat jelzi.
2) Adaptív riasztási profilok
A rendszer két fő üzemmódot kezel, és intelligensen vált közöttük.
- "Látó" üzemmód: vibráció, sípoló hang és képernyővillanás; opcionális intelligens szűrés; állítható riasztási távolság (5-25 m).
- "Akadálymentesített" üzemmód: élőszavas bemondás (TTS) + kényszerített rezgés; folyamatos figyelés; 1 méteres biztonsági távolság; állapot-visszaállítás kikapcsoláskor.
Technikai kivitelezés (architektúra)
- Adatkezelési réteg: `SettingsRepository` (Jetpack DataStore), `LocationRepository` (StateFlow).
- Logikai és vezérlési réteg: `SettingsViewModel` (MVVM), `AlertCoordinator`, `ProtectionEvaluator`.
- Végrehajtó réteg: `LocationService` (Foreground Service), `VoiceAlert` (TTS HU/EN), `OsmManager` (Overpass API + failover).
Biztonsági garanciák
- Legalább egy aktív csatorna: nem kapcsolható ki egyszerre minden riasztási mód.
- Védelmi vákuum elleni védelem: veszélyes visszaállítási állapot esetén kényszerített biztonsági reset.
- Shake-to-Acknowledge: a riasztás fizikai rázással is nyugtázható.
UI és design irányelvek
- Modularitás: újrahasználható komponensek (`SettingsToggle`, `SettingsSlider`).
- Reaktív megjelenítés: az UI közvetlenül adatfolyamokat figyel, ezért a háttérbeli változások azonnal láthatók.
- Konzisztencia: egységes színhasználat az aktív és tiltott állapotok egyértelmű megkülönböztetésére.