From 0c9370f9f2db59e6382b481c3000f241b234b46e Mon Sep 17 00:00:00 2001 From: orfelorfel23 Date: Sun, 28 Jun 2026 14:51:23 +0200 Subject: [PATCH] Auto-Commit: 2026-06-28 14:51:23 --- app.json | 4 ++-- src/screens/AdminScreen.tsx | 8 ++------ src/screens/CameraScreen.tsx | 6 +++--- src/screens/PreviewScreen.tsx | 20 +++++++++++--------- src/services/settings.ts | 2 +- 5 files changed, 19 insertions(+), 21 deletions(-) diff --git a/app.json b/app.json index 9c635410..30e05225 100644 --- a/app.json +++ b/app.json @@ -3,7 +3,7 @@ "newArchEnabled": true, "name": "Schnappix", "slug": "Schnappix", - "version": "23.01.10", + "version": "23.01.11", "orientation": "landscape", "icon": "./Icon.png", "userInterfaceStyle": "dark", @@ -13,7 +13,7 @@ }, "android": { "package": "de.orfel.schnappix", - "versionCode": 10, + "versionCode": 11, "adaptiveIcon": { "backgroundColor": "#050510", "foregroundImage": "./Icon-padded.png" diff --git a/src/screens/AdminScreen.tsx b/src/screens/AdminScreen.tsx index 7aaad607..ad39bfbf 100644 --- a/src/screens/AdminScreen.tsx +++ b/src/screens/AdminScreen.tsx @@ -213,11 +213,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS const ipTrimmed = printerIp.trim(); const ipRegex = /^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/; - if (!ipTrimmed) { - Alert.alert('Ungültige Eingabe', 'Die Drucker-IP-Adresse darf nicht leer sein.'); - return; - } - if (!ipRegex.test(ipTrimmed)) { + if (ipTrimmed !== '' && ipTrimmed !== '192.168.' && !ipRegex.test(ipTrimmed)) { Alert.alert('Ungültige Eingabe', 'Bitte gib eine gültige IP-Adresse ein (z.B. 192.168.1.100).'); return; } @@ -254,7 +250,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS eventText: eventText.trim(), burstCount: burst, burstIntervalSec: interval, - welcomeText: welcomeText.trim() || 'Willkommen zu unserer Feier!', + welcomeText: welcomeText.trim() || 'Zeit für ein Erinnerungsfoto!', footerText: footerText.trim() || 'ZUM STARTEN TIPPEN • Fotos machen • Collage • Drucken', useFrontCamera, enableLogs, diff --git a/src/screens/CameraScreen.tsx b/src/screens/CameraScreen.tsx index 3ee5ce39..f7582439 100644 --- a/src/screens/CameraScreen.tsx +++ b/src/screens/CameraScreen.tsx @@ -71,7 +71,7 @@ export default function CameraScreen({ onStartBooth, onNavigateToAdmin, adminPassword = '1234', - welcomeText = 'Willkommen zu unserer Feier!', + welcomeText = 'Zeit für ein Erinnerungsfoto!', burstCount = 1, burstIntervalSec, frameMode, @@ -344,7 +344,7 @@ export default function CameraScreen({ }); capturedUri = photo.uri; } else { - throw new Error('Kamera-Referenz ist nicht verfügbar.'); + throw new Error('Kamera-Referenz ist nicht verfügbar. Bitte stelle sicher, dass die externe Kamera verbunden ist, oder aktiviere den Front-Kamera-Fallback in den Admin-Einstellungen.'); } } @@ -671,7 +671,7 @@ export default function CameraScreen({ {/* Camera Preview Background */} - {!isObscured && Platform.OS === 'android' && !useFrontCamera ? ( + {Platform.OS === 'android' && !useFrontCamera ? ( (false); const [statusMessage, setStatusMessage] = useState(''); + const { width, height } = useWindowDimensions(); + const isPortrait = height > width; + const [activeUris, setActiveUris] = useState([]); // Initialize activeUris with all available photos up to 4 when first loaded @@ -466,12 +469,12 @@ export default function PreviewScreen({ return ( {/* Left panel: Preview Canvas */} @@ -533,7 +536,10 @@ export default function PreviewScreen({ )} {/* Right panel: Controls */} - + {eventText} {/* Thumbnail Reel for Photo Selection */} @@ -660,7 +666,7 @@ export default function PreviewScreen({ - + {/* Loading Overlay */} {isProcessing && ( @@ -678,11 +684,9 @@ export default function PreviewScreen({ const styles = StyleSheet.create({ container: { flex: 1, - flexDirection: 'row', backgroundColor: THEME.colors.background, }, previewPanel: { - flex: 1.2, justifyContent: 'flex-start', alignItems: 'center', padding: THEME.spacing.md, @@ -698,10 +702,8 @@ const styles = StyleSheet.create({ overflow: 'hidden', }, controlPanel: { - flex: 0.8, backgroundColor: THEME.colors.surface, padding: THEME.spacing.xl, - justifyContent: 'center', borderLeftWidth: 1, borderColor: THEME.colors.border, }, diff --git a/src/services/settings.ts b/src/services/settings.ts index 01bd60ea..ae7c23b5 100644 --- a/src/services/settings.ts +++ b/src/services/settings.ts @@ -35,7 +35,7 @@ const settingsFile = new File(Paths.document, 'settings.json'); const DEFAULT_SETTINGS: AppSettings = { appLastUpdate: null, countdownDuration: 3, - printerIp: '192.168.1.100', + printerIp: '192.168.', adminPassword: '1234', kioskModeEnabled: false, frameMode: 'available',