version 0.0.0.3
This commit is contained in:
@@ -18,6 +18,7 @@ import {
|
||||
} from 'react-native';
|
||||
import rvs, { ConnectionState, RVSMessage, ConnectionConfig } from '../services/rvs';
|
||||
import ModeSelector from '../components/ModeSelector';
|
||||
import QRScanner from '../components/QRScanner';
|
||||
|
||||
// --- Typen ---
|
||||
|
||||
@@ -56,6 +57,7 @@ const SettingsScreen: React.FC = () => {
|
||||
const [manualPort, setManualPort] = useState('8765');
|
||||
const [currentMode, setCurrentMode] = useState('normal');
|
||||
const [gpsEnabled, setGpsEnabled] = useState(false);
|
||||
const [scannerVisible, setScannerVisible] = useState(false);
|
||||
const [logTab, setLogTab] = useState<LogTab>('live');
|
||||
const [logs, setLogs] = useState<LogEntry[]>([]);
|
||||
const [events, setEvents] = useState<EventEntry[]>([]);
|
||||
@@ -105,11 +107,24 @@ const SettingsScreen: React.FC = () => {
|
||||
// --- QR-Code scannen ---
|
||||
|
||||
const openQRScanner = useCallback(() => {
|
||||
// In Produktion: QR-Scanner oeffnen (react-native-camera)
|
||||
// Format: aria://host:port?token=xxx&tls=1
|
||||
setScannerVisible(true);
|
||||
}, []);
|
||||
|
||||
const handleQRScan = useCallback((config: ConnectionConfig) => {
|
||||
setScannerVisible(false);
|
||||
|
||||
// Felder im UI aktualisieren
|
||||
setManualHost(config.host);
|
||||
setManualPort(String(config.port));
|
||||
setManualToken(config.token);
|
||||
|
||||
// Direkt verbinden
|
||||
rvs.setConfig(config);
|
||||
rvs.connect();
|
||||
|
||||
Alert.alert(
|
||||
'QR-Scanner',
|
||||
'QR-Code Scanner wird in der naechsten Version implementiert.\n\nBitte Token manuell eingeben.',
|
||||
'Pairing erfolgreich',
|
||||
`Verbinde mit ${config.host}:${config.port}...`,
|
||||
);
|
||||
}, []);
|
||||
|
||||
@@ -170,6 +185,12 @@ const SettingsScreen: React.FC = () => {
|
||||
connectionState === 'connecting' ? 'Verbinde...' : 'Getrennt';
|
||||
|
||||
return (
|
||||
<>
|
||||
<QRScanner
|
||||
visible={scannerVisible}
|
||||
onScan={handleQRScan}
|
||||
onClose={() => setScannerVisible(false)}
|
||||
/>
|
||||
<ScrollView style={styles.container} contentContainerStyle={styles.content}>
|
||||
|
||||
{/* === Verbindung === */}
|
||||
@@ -348,6 +369,7 @@ const SettingsScreen: React.FC = () => {
|
||||
{/* Platz am Ende */}
|
||||
<View style={styles.bottomSpacer} />
|
||||
</ScrollView>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user