Fix iOS crash, storage, and printing issues; setup apk build

This commit is contained in:
2026-05-30 23:09:36 +02:00
parent eee684a3c9
commit 54666b077a
19 changed files with 1821 additions and 149 deletions
+27 -6
View File
@@ -1,5 +1,6 @@
import React, { useState, useEffect } from 'react';
import { StyleSheet, View, SafeAreaView, StatusBar } from 'react-native';
import { GestureHandlerRootView } from 'react-native-gesture-handler';
import CameraScreen from './src/screens/CameraScreen';
import PreviewScreen from './src/screens/PreviewScreen';
import AdminScreen from './src/screens/AdminScreen';
@@ -46,6 +47,12 @@ export default function App() {
setCurrentScreen('preview');
};
// Called by CameraScreen when burst mode completes all photos
const handleBurstComplete = (uris: string[]) => {
setPhotoUris((prev) => [...prev, ...uris]);
setCurrentScreen('preview');
};
const handleRetakeLast = () => {
// Remove last captured photo
const updatedUris = [...photoUris];
@@ -85,8 +92,11 @@ export default function App() {
<CameraScreen
countdownDuration={settings.countdownDuration}
onPhotoCaptured={handlePhotoCaptured}
onBurstComplete={handleBurstComplete}
onCancel={handleReset}
isIdle={false}
burstCount={settings.burstCount}
burstIntervalSec={settings.burstIntervalSec}
/>
);
case 'preview':
@@ -97,6 +107,11 @@ export default function App() {
onRetakeLast={handleRetakeLast}
onAddAnother={handleAddAnother}
onReset={handleReset}
frameMode={settings.frameMode}
initialFrameId={settings.selectedFrameId}
dateOverlay={settings.dateOverlay}
dateOverlayPosition={settings.dateOverlayPosition}
eventText={settings.eventText}
/>
);
case 'admin':
@@ -112,32 +127,38 @@ export default function App() {
<CameraScreen
countdownDuration={settings.countdownDuration}
onPhotoCaptured={handlePhotoCaptured}
onBurstComplete={handleBurstComplete}
onCancel={handleReset}
isIdle={true}
onStartBooth={handleStartBooth}
onNavigateToAdmin={handleOpenAdmin}
adminPassword={settings.adminPassword}
welcomeText={settings.welcomeText}
burstCount={settings.burstCount}
burstIntervalSec={settings.burstIntervalSec}
/>
);
}
};
return (
<SafeAreaView style={styles.container}>
<StatusBar hidden={true} />
{renderScreen()}
</SafeAreaView>
<GestureHandlerRootView style={styles.container}>
<SafeAreaView style={styles.container}>
<StatusBar hidden={true} />
{renderScreen()}
</SafeAreaView>
</GestureHandlerRootView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#000000',
backgroundColor: '#050510',
},
loadingContainer: {
flex: 1,
backgroundColor: '#050507',
backgroundColor: '#050510',
justifyContent: 'center',
alignItems: 'center',
},