Move settings around part 3

This commit is contained in:
stopflock
2025-09-30 00:17:25 -05:00
parent b3a87fc56a
commit 3a985d2f8f
9 changed files with 45 additions and 191 deletions
@@ -39,13 +39,17 @@ class _MaxNodesSectionState extends State<MaxNodesSection> {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
locService.t('settings.maxNodes'),
style: Theme.of(context).textTheme.titleMedium,
),
const SizedBox(height: 8),
ListTile(
leading: const Icon(Icons.filter_alt),
title: Text(locService.t('settings.maxNodes')),
title: Text(locService.t('settings.maxNodesSubtitle')),
subtitle: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(locService.t('settings.maxNodesSubtitle')),
if (showWarning)
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
@@ -65,16 +65,22 @@ class _OfflineAreasSectionState extends State<OfflineAreasSection> {
final locService = LocalizationService.instance;
final areas = service.offlineAreas;
if (areas.isEmpty) {
return ListTile(
leading: const Icon(Icons.download_for_offline),
title: Text(locService.t('offlineAreas.noAreasTitle')),
subtitle: Text(locService.t('offlineAreas.noAreasSubtitle')),
);
}
return Column(
children: areas.map((area) {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
locService.t('offlineAreas.title'),
style: Theme.of(context).textTheme.titleMedium,
),
const SizedBox(height: 8),
if (areas.isEmpty)
ListTile(
leading: const Icon(Icons.download_for_offline),
title: Text(locService.t('offlineAreas.noAreasTitle')),
subtitle: Text(locService.t('offlineAreas.noAreasSubtitle')),
)
else
...areas.map((area) {
String diskStr = area.sizeBytes > 0
? area.sizeBytes > 1024 * 1024
? "${(area.sizeBytes / (1024 * 1024)).toStringAsFixed(2)} ${locService.t('offlineAreas.megabytes')}"
@@ -202,7 +208,8 @@ class _OfflineAreasSectionState extends State<OfflineAreasSection> {
),
);
}).toList(),
);
],
);
},
);
}
@@ -61,14 +61,23 @@ class OfflineModeSection extends StatelessWidget {
final locService = LocalizationService.instance;
final appState = context.watch<AppState>();
return ListTile(
leading: const Icon(Icons.wifi_off),
title: Text(locService.t('settings.offlineMode')),
subtitle: Text(locService.t('settings.offlineModeSubtitle')),
trailing: Switch(
value: appState.offlineMode,
onChanged: (value) => _handleOfflineModeChange(context, appState, value),
),
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
locService.t('settings.offlineMode'),
style: Theme.of(context).textTheme.titleMedium,
),
const SizedBox(height: 8),
ListTile(
leading: const Icon(Icons.wifi_off),
title: Text(locService.t('settings.offlineModeSubtitle')),
trailing: Switch(
value: appState.offlineMode,
onChanged: (value) => _handleOfflineModeChange(context, appState, value),
),
),
],
);
},
);
@@ -95,9 +95,8 @@ class _ProximityAlertsSectionState extends State<ProximityAlertsSection> {
// Enable/disable toggle
SwitchListTile(
title: const Text('Enable proximity alerts'),
title: const Text('Get notified when approaching surveillance devices'),
subtitle: Text(
'Get notified when approaching surveillance devices\n'
'Uses extra battery for continuous location monitoring\n'
'${_notificationsEnabled ? "✓ Notifications enabled" : "⚠ Notifications disabled"}',
style: const TextStyle(fontSize: 12),