Auto-Commit: 2026-07-09 22:51:28

This commit is contained in:
2026-07-09 22:51:28 +02:00
parent 583b0d034e
commit a7b728fba6
10 changed files with 68 additions and 66 deletions
@@ -45,3 +45,4 @@
42514 42649 8048871219047361 C:/GitHub/Schnappix/android/app/build/intermediates/cxx/RelWithDebInfo/3x5j4n2e/obj/arm64-v8a/libappmodules.so 22f7dfe7517aece
20 71 0 C:/GitHub/Schnappix/android/app/.cxx/RelWithDebInfo/3x5j4n2e/arm64-v8a/CMakeFiles/cmake.verify_globs 5250f1b80cb55465
2 24 0 C:/GitHub/Schnappix/android/app/.cxx/RelWithDebInfo/3x5j4n2e/arm64-v8a/CMakeFiles/cmake.verify_globs 5250f1b80cb55465
6 63 0 C:/GitHub/Schnappix/android/app/.cxx/RelWithDebInfo/3x5j4n2e/arm64-v8a/CMakeFiles/cmake.verify_globs 5250f1b80cb55465
@@ -2,41 +2,41 @@ C/C++ Structured Logg
e
cC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Îïìòò3Å, ½Ñªðò3d
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¶…—Åô3Å, ½Ñªðò3d
b
`C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\android_gradle_build.json  Îïìòò3û" ÂѪðò3i
`C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\android_gradle_build.json  ¶…—Åô3û" ÂѪðò3i
g
eC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\android_gradle_build_mini.json  Îïìòò3ï  Òªðò3V
eC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\android_gradle_build_mini.json  ¶…—Åô3ï  Òªðò3V
T
RC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\build.ninja  Îïìòò3œÞ åͪðò3Z
RC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\build.ninja  ¶…—Åô3œÞ åͪðò3Z
X
VC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\build.ninja.txt  Îïìòò3_
VC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\build.ninja.txt  ¶…—Åô3_
]
[C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\build_file_index.txt  Îïìòò3 ¨Òªðò3`
[C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\build_file_index.txt  ¶…—Åô3 ¨Òªðò3`
^
\C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\compile_commands.json  Îïìòò3‘Ø ãͪðò3d
\C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\compile_commands.json  ¶…—Åô3‘Ø ãͪðò3d
b
`C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\compile_commands.json.bin  Îïìòò3 Ê„ ãͪðò3j
`C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\compile_commands.json.bin  ¶…—Åô3 Ê„ ãͪðò3j
h
fC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\metadata_generation_command.txt  Îïìòò3
fC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\metadata_generation_command.txt  ¶…—Åô3
¸ §Òªðò3]
[
YC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\prefab_config.json  Îïìòò3  ¨Òªðò3b
YC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\prefab_config.json  ¶…—Åô3  ¨Òªðò3b
`
^C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\symbol_folder_index.txt  Îïìòò3
^C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\arm64-v8a\symbol_folder_index.txt  ¶…—Åô3
 ] ¨Òªðò3{
y
y
wC:\GitHub\Schnappix\node_modules\react-native-gesture-handler\android\build\generated\source\codegen\jni\CMakeLists.txt  ¶…—Åô3
¾ Ü…§ðò3v
¾ Ü…§ðò3v
t
rC:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\generated\source\codegen\jni\CMakeLists.txt  Îïìòò3ö ùާðò3µ
rC:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\generated\source\codegen\jni\CMakeLists.txt  ¶…—Åô3ö ùާðò3µ
²
¯C:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  Îïìòò3Y
¯C:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  ¶…—Åô3Y
W
UC:\GitHub\Schnappix\node_modules\react-native-svg\android\src\main\jni\CMakeLists.txt  Îïìòò3½ œ§ØÖç3u
UC:\GitHub\Schnappix\node_modules\react-native-svg\android\src\main\jni\CMakeLists.txt  ¶…—Åô3½ œ§ØÖç3u
s
qC:\GitHub\Schnappix\node_modules\react-native-view-shot\android\build\generated\source\codegen\jni\CMakeLists.txt  Îïìòò3ê ú„§ðò3t
qC:\GitHub\Schnappix\node_modules\react-native-view-shot\android\build\generated\source\codegen\jni\CMakeLists.txt  ¶…—Åô3ê ú„§ðò3t
r
pC:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\generated\source\codegen\jni\CMakeLists.txt  Îïìòò3ê è„§ðò3³
pC:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\generated\source\codegen\jni\CMakeLists.txt  ¶…—Åô3ê è„§ðò3³
°
­C:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  Îïìòò3k
­C:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  ¶…—Åô3k
@@ -45,3 +45,4 @@
20839 20978 8048871470843232 C:/GitHub/Schnappix/android/app/build/intermediates/cxx/RelWithDebInfo/3x5j4n2e/obj/armeabi-v7a/libappmodules.so 7a2dfc40ee7e94c1
2 33 0 C:/GitHub/Schnappix/android/app/.cxx/RelWithDebInfo/3x5j4n2e/armeabi-v7a/CMakeFiles/cmake.verify_globs 1eb2d1da6ebc2e74
2 27 0 C:/GitHub/Schnappix/android/app/.cxx/RelWithDebInfo/3x5j4n2e/armeabi-v7a/CMakeFiles/cmake.verify_globs 1eb2d1da6ebc2e74
3 46 0 C:/GitHub/Schnappix/android/app/.cxx/RelWithDebInfo/3x5j4n2e/armeabi-v7a/CMakeFiles/cmake.verify_globs 1eb2d1da6ebc2e74
@@ -2,41 +2,41 @@ C/C++ Structured Logi
g
eC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\additional_project_files.txtC
A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ýðìòò3ý, ÷íðò3f
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Õ‡—Åô3ý, ÷íðò3f
d
bC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\android_gradle_build.json  Ýðìòò3# øÃ­ðò3k
bC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\android_gradle_build.json  Õ‡—Åô3# øÃ­ðò3k
i
gC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\android_gradle_build_mini.json  Ýðìòò3 ŸÄ­ðò3X
gC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\android_gradle_build_mini.json  Õ‡—Åô3 ŸÄ­ðò3X
V
TC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\build.ninja  Ýðìòò3Áå âÀ­ðò3\
TC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\build.ninja  Õ‡—Åô3Áå âÀ­ðò3\
Z
XC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\build.ninja.txt  Ýðìòò3a
XC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\build.ninja.txt  Õ‡—Åô3a
_
]C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\build_file_index.txt  Ýðìòò3  Ä­ðò3b
]C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\build_file_index.txt  Õ‡—Åô3  Ä­ðò3b
`
^C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\compile_commands.json  Ýðìòò3´à àÀ­ðò3f
^C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\compile_commands.json  Õ‡—Åô3´à àÀ­ðò3f
d
bC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\compile_commands.json.bin  Ýðìòò3 ò„ àÀ­ðò3l
bC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\compile_commands.json.bin  Õ‡—Åô3 ò„ àÀ­ðò3l
j
hC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\metadata_generation_command.txt  Ýðìòò3
hC:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\metadata_generation_command.txt  Õ‡—Åô3
Ä ŸÄ­ðò3_
]
[C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\prefab_config.json  Ýðìòò3  ŸÄ­ðò3d
[C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\prefab_config.json  Õ‡—Åô3  ŸÄ­ðò3d
b
`C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\symbol_folder_index.txt  Ýðìòò3
`C:\GitHub\Schnappix\android\app\.cxx\RelWithDebInfo\3x5j4n2e\armeabi-v7a\symbol_folder_index.txt  Õ‡—Åô3
 _  Ä­ðò3{
y
y
wC:\GitHub\Schnappix\node_modules\react-native-gesture-handler\android\build\generated\source\codegen\jni\CMakeLists.txt  Õ‡—Åô3
¾ Ü…§ðò3v
¾ Ü…§ðò3v
t
rC:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\generated\source\codegen\jni\CMakeLists.txt  Ýðìòò3ö ùާðò3µ
rC:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\generated\source\codegen\jni\CMakeLists.txt  Õ‡—Åô3ö ùާðò3µ
²
¯C:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  Ýðìòò3Y
¯C:\GitHub\Schnappix\node_modules\react-native-reanimated\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  Õ‡—Åô3Y
W
UC:\GitHub\Schnappix\node_modules\react-native-svg\android\src\main\jni\CMakeLists.txt  Ýðìòò3½ œ§ØÖç3u
UC:\GitHub\Schnappix\node_modules\react-native-svg\android\src\main\jni\CMakeLists.txt  Õ‡—Åô3½ œ§ØÖç3u
s
qC:\GitHub\Schnappix\node_modules\react-native-view-shot\android\build\generated\source\codegen\jni\CMakeLists.txt  Ýðìòò3ê ú„§ðò3t
qC:\GitHub\Schnappix\node_modules\react-native-view-shot\android\build\generated\source\codegen\jni\CMakeLists.txt  Õ‡—Åô3ê ú„§ðò3t
r
pC:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\generated\source\codegen\jni\CMakeLists.txt  Ýðìòò3ê è„§ðò3³
pC:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\generated\source\codegen\jni\CMakeLists.txt  Õ‡—Åô3ê è„§ðò3³
°
­C:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  Ýðìòò3k
­C:\GitHub\Schnappix\node_modules\react-native-worklets\android\build\intermediates\prefab_package_configuration\release\prefabReleaseConfigurePackage\prefab_publication.json  Õ‡—Åô3k
+2 -2
View File
@@ -92,8 +92,8 @@ android {
applicationId 'de.orfel.schnappix'
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 16
versionName "23.01.16"
versionCode 17
versionName "23.01.17"
buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\""
}
+2 -2
View File
@@ -3,7 +3,7 @@
"newArchEnabled": true,
"name": "Schnappix",
"slug": "Schnappix",
"version": "23.01.16",
"version": "23.01.17",
"orientation": "landscape",
"icon": "./Icon.png",
"userInterfaceStyle": "dark",
@@ -13,7 +13,7 @@
},
"android": {
"package": "de.orfel.schnappix",
"versionCode": 16,
"versionCode": 17,
"adaptiveIcon": {
"backgroundColor": "#050510",
"foregroundImage": "./Icon-padded.png"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "schnappix",
"version": "23.01.16",
"version": "23.01.17",
"main": "index.ts",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.7.2",
+19 -19
View File
@@ -67,7 +67,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
const [isTogglingKiosk, setIsTogglingKiosk] = useState<boolean>(false);
const [logs, setLogs] = useState<string | null>(null);
const scrollViewRef = useRef<ScrollView>(null);
const [kioskActive, setKioskActive] = useState<boolean>(false);
const [isDeviceOwner, setIsDeviceOwner] = useState<boolean>(false);
@@ -150,7 +150,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
return () => subscription.remove();
}, [
countdown, printerIp, password, kioskActive, frameMode, selectedFrameId, availableFrameIds,
dateOverlay, dateOverlayTransform, eventText, burstCount, burstIntervalSec, welcomeText,
dateOverlay, dateOverlayTransform, eventText, burstCount, burstIntervalSec, welcomeText,
footerText, useFrontCamera, enableLogs, currentSettings
]);
@@ -213,7 +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}$/;
// IP may be empty to enable digital-only mode
if (ipTrimmed !== '' && !ipRegex.test(ipTrimmed)) {
Alert.alert('Ungültige Eingabe', 'Bitte gib eine gültige IP-Adresse ein oder lass das Feld leer (für rein digitalen Modus).');
@@ -328,9 +328,9 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
<FontAwesomeIcon icon={faArrowLeft} size={14} color={THEME.colors.text} />
<Text style={styles.closeBtnText}>Zurück zur Fotobox</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.logBtn}
onPress={async () => setLogs(await logger.readLogs())}
<TouchableOpacity
style={styles.logBtn}
onPress={async () => setLogs(await logger.readLogs())}
>
<FontAwesomeIcon icon={faFileLines} size={16} color={THEME.colors.text} />
<Text style={styles.closeBtnText}>Logs</Text>
@@ -354,7 +354,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
/>
</View>
<View style={styles.inputGroup}>
<Text style={styles.label}>Subtext (Footer)</Text>
<Text style={styles.label}>Fußtext</Text>
<TextInput
style={styles.input}
placeholder="Display tippen! • Lächeln! • Foto schnappen!"
@@ -431,7 +431,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
<Text style={styles.cardTitle}>Gestaltung: Fotorahmen</Text>
</View>
{renderSegment(FRAME_MODE_OPTIONS, frameMode, setFrameMode)}
{frameMode === 'always' && FRAMES.length > 0 && (
<View style={styles.inputGroup}>
<Text style={styles.label}>Ausgewählter Rahmen</Text>
@@ -498,21 +498,21 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
<Text style={styles.cardTitle}>Gestaltung: Datum/Uhrzeit-Einblendung</Text>
</View>
{renderSegment(DATE_OVERLAY_OPTIONS, dateOverlay, setDateOverlay)}
{dateOverlay !== 'off' && (
<View style={styles.inputGroup}>
<Text style={styles.label}>Vorschau: Positionieren & Drehen</Text>
<Text style={styles.cardDesc}>
Ziehe den Text in der Vorschau mit dem Finger an die gewünschte Position. Passe Rotation und Größe mit den +/- Tasten an.
</Text>
<View style={styles.previewBoxContainer}>
<View style={styles.previewBox}>
<View
<View
style={[
styles.previewTextWrapper,
{
left: `${dateOverlayTransform.x}%`,
styles.previewTextWrapper,
{
left: `${dateOverlayTransform.x}%`,
top: `${dateOverlayTransform.y}%`,
transform: [
{ rotate: `${dateOverlayTransform.rotation}deg` },
@@ -594,7 +594,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
/>
</View>
<View style={styles.toggleRow}>
<Text style={styles.toggleLabel}>Tablet-Frontkamera als Fallback erzwingen</Text>
<Text style={styles.toggleLabel}>Frontkamera nutzen (Deaktiviert externe Kamera)</Text>
<Switch
value={useFrontCamera}
onValueChange={setUseFrontCamera}
@@ -603,7 +603,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
/>
</View>
<View style={styles.toggleRow}>
<Text style={styles.toggleLabel}>App-Protokollierung (Logs) aktivieren</Text>
<Text style={styles.toggleLabel}>Logs aktivieren</Text>
<Switch
value={enableLogs}
onValueChange={setEnableLogs}
@@ -674,7 +674,7 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
</TouchableOpacity>
</View>
</View>
{/* Log Modal */}
<Modal visible={logs !== null} transparent animationType="slide">
<View style={{ flex: 1, backgroundColor: 'rgba(0,0,0,0.8)', justifyContent: 'center', alignItems: 'center' }}>
@@ -695,10 +695,10 @@ export default function AdminScreen({ currentSettings, onSave, onClose }: AdminS
<Text style={{ color: '#fff', fontWeight: 'bold' }}>Teilen / Kopieren</Text>
</TouchableOpacity>
</View>
<ScrollView
<ScrollView
style={{ flex: 1, backgroundColor: '#000', padding: 10, borderRadius: 5 }}
ref={scrollViewRef}
onContentSizeChange={() => scrollViewRef.current?.scrollToEnd({animated: true})}
onContentSizeChange={() => scrollViewRef.current?.scrollToEnd({ animated: true })}
>
<Text style={{ color: '#0f0', fontFamily: 'monospace' }}>{logs}</Text>
</ScrollView>
+2 -2
View File
@@ -348,7 +348,7 @@ export default function CameraScreen({
});
capturedUri = photo.uri;
} else {
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.');
throw new Error('Externe Kamera nicht gefunden. Bitte stelle sicher, dass die externe Kamera richtig verbunden ist oder aktiviere die Front-Kamera in den Admin-Einstellungen (oben rechts).');
}
}
@@ -562,7 +562,7 @@ export default function CameraScreen({
<Text style={styles.modalTitle}>Admin-Zugang</Text>
<Text style={styles.modalSub}>Passwort eingeben, um Einstellungen zu öffnen</Text>
<Text style={[styles.modalSub, { color: THEME.colors.error, marginTop: 10, fontSize: 14, fontStyle: 'italic' }]}>
Tipp: Standardcode ist 1234. Bitte ändern! Ein Zurücksetzen ist nur durch Neuinstallation der App möglich.
Standardcode: 1234. Bitte in den Einstellungen ändern! Ein Zurücksetzen ist nur durch Neuinstallation der App möglich.
</Text>
<TextInput
+2 -2
View File
@@ -48,7 +48,7 @@ const DEFAULT_SETTINGS: AppSettings = {
burstIntervalSec: 5,
welcomeText: 'Zeit für ein Erinnerungsfoto!',
footerText: 'Display tippen! • Lächeln! • Foto schnappen!',
useFrontCamera: false,
useFrontCamera: true,
enableLogs: true,
};
@@ -67,7 +67,7 @@ export async function loadSettings(): Promise<AppSettings> {
try {
const content = await settingsFile.text();
const parsed = JSON.parse(content);
// Reset to defaults if the app installation/update time has changed
// Also reset if appLastUpdate is completely missing (updating from older version)
if (!parsed.appLastUpdate || (currentUpdateTime && Math.abs(parsed.appLastUpdate - currentUpdateTime) > 5000)) {