diff --git a/app/app.json b/app/app.json index 5215ecc..9738ac2 100644 --- a/app/app.json +++ b/app/app.json @@ -3,14 +3,14 @@ "name": "BigBrainParking", "slug": "bigbrainparking", "scheme": "bigbrainparking", - "version": "0.4.0", + "version": "0.4.1", "orientation": "portrait", "userInterfaceStyle": "automatic", "newArchEnabled": true, "icon": "./assets/icon.png", "android": { "package": "top.mowden.bigbrainparking", - "versionCode": 18, + "versionCode": 19, "edgeToEdgeEnabled": true, "adaptiveIcon": { "foregroundImage": "./assets/adaptive-icon.png", diff --git a/app/src/screens/MeterDetailScreen.tsx b/app/src/screens/MeterDetailScreen.tsx index 39e8494..f5d3fec 100644 --- a/app/src/screens/MeterDetailScreen.tsx +++ b/app/src/screens/MeterDetailScreen.tsx @@ -159,12 +159,16 @@ export function MeterDetailScreen() { navigation.navigate('StartSession', { zone: z }); }; - // Always available — pick a duration (defaults to the labeled limit if any). + // Labeled free zone → check in straight at its known limit. Unlabeled → pick. const onCheckin = () => { + if (labeledHours) { + void doCheckin(labeledHours); + return; + } Alert.alert('Free check-in', 'Start a local timer for the free limit here:', [ - { text: labeledHours === 2 ? '2 hours ✓' : '2 hours', onPress: () => doCheckin(2) }, - { text: labeledHours === 3 ? '3 hours ✓' : '3 hours', onPress: () => doCheckin(3) }, - { text: labeledHours === 4 ? '4 hours ✓' : '4 hours', onPress: () => doCheckin(4) }, + { text: '2 hours', onPress: () => doCheckin(2) }, + { text: '3 hours', onPress: () => doCheckin(3) }, + { text: '4 hours', onPress: () => doCheckin(4) }, { text: 'Cancel', style: 'cancel' }, ]); }; @@ -280,15 +284,15 @@ export function MeterDetailScreen() { - - - {labeledHours ? `Check in (free · ${labeledHours}h)` : 'Check in (free timer)'} - - - {label?.kind === 'pay_immediate' ? ( Pay immediately — no free window here. - ) : null} + ) : ( + + + {labeledHours ? `Check in (free · ${labeledHours}h)` : 'Check in (free timer)'} + + + )}