Extract settings and harden geofence automation

This commit is contained in:
Artem Kokos
2026-05-15 10:18:46 +07:00
parent 1963488479
commit d796537917
21 changed files with 1392 additions and 278 deletions

View File

@@ -3,14 +3,14 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../app/error_message.dart';
import '../models/ignis_group.dart';
import '../providers/providers.dart';
import '../widgets/build_info_text.dart';
import '../widgets/group_card.dart';
import 'homes_screen.dart';
import 'group_edit_screen.dart';
import 'schedules_screen.dart';
import 'stats_screen.dart';
import 'event_log_screen.dart';
import 'api_keys_screen.dart';
import 'event_log_screen.dart';
import 'group_edit_screen.dart';
import 'homes_screen.dart';
import 'schedules_screen.dart';
import 'settings_screen.dart';
import 'stats_screen.dart';
/// Основной экран пульта управления.
/// Показывает группы текущего дома с управлением.
@@ -91,6 +91,15 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
MaterialPageRoute(builder: (_) => const ApiKeysScreen()),
);
break;
case 'settings':
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) => const SettingsScreen(
entryPoint: SettingsEntryPoint.remote,
),
),
);
break;
}
},
itemBuilder: (context) => [
@@ -118,6 +127,14 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
contentPadding: EdgeInsets.zero,
),
),
const PopupMenuItem(
value: 'settings',
child: ListTile(
leading: Icon(Icons.settings_outlined),
title: Text('Настройки'),
contentPadding: EdgeInsets.zero,
),
),
if (isAdmin)
const PopupMenuItem(
value: 'api_keys',
@@ -127,13 +144,6 @@ class _RemoteScreenState extends ConsumerState<RemoteScreen> {
contentPadding: EdgeInsets.zero,
),
),
const PopupMenuItem(
enabled: false,
child: Padding(
padding: EdgeInsets.symmetric(vertical: 4),
child: BuildInfoText(compact: false, alignStart: true),
),
),
],
),
],