Initial Commit
This commit is contained in:
91
lib/screens/settings/security_settings_screen.dart
Normal file
91
lib/screens/settings/security_settings_screen.dart
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gwid/screens/settings/session_spoofing_screen.dart';
|
||||
import 'package:gwid/screens/settings/sessions_screen.dart';
|
||||
import 'package:gwid/screens/settings/export_session_screen.dart';
|
||||
import 'package:gwid/screens/settings/qr_login_screen.dart';
|
||||
|
||||
class SecuritySettingsScreen extends StatelessWidget {
|
||||
const SecuritySettingsScreen({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text("Безопасность")),
|
||||
body: ListView(
|
||||
padding: const EdgeInsets.all(16),
|
||||
children: [
|
||||
|
||||
_buildSecurityOption(
|
||||
context,
|
||||
icon: Icons.qr_code_scanner_outlined,
|
||||
title: "Вход по QR-коду",
|
||||
subtitle: "Показать QR-код для входа на другом устройстве",
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (context) => const QrLoginScreen()),
|
||||
);
|
||||
},
|
||||
),
|
||||
_buildSecurityOption(
|
||||
context,
|
||||
icon: Icons.history_toggle_off,
|
||||
title: "Активные сессии",
|
||||
subtitle: "Просмотр и управление активными сессиями",
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(builder: (context) => const SessionsScreen()),
|
||||
);
|
||||
},
|
||||
),
|
||||
_buildSecurityOption(
|
||||
context,
|
||||
icon: Icons.upload_file_outlined,
|
||||
title: "Экспорт сессии",
|
||||
subtitle: "Сохранить данные сессии для переноса",
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => const ExportSessionScreen(),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
_buildSecurityOption(
|
||||
context,
|
||||
icon: Icons.devices_other_outlined,
|
||||
title: "Подмена данных сессии",
|
||||
subtitle: "Изменение User-Agent, версии ОС и т.д.",
|
||||
onTap: () {
|
||||
Navigator.of(context).push(
|
||||
MaterialPageRoute(
|
||||
builder: (context) => const SessionSpoofingScreen(),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildSecurityOption(
|
||||
BuildContext context, {
|
||||
required IconData icon,
|
||||
required String title,
|
||||
required String subtitle,
|
||||
required VoidCallback onTap,
|
||||
}) {
|
||||
return Card(
|
||||
margin: const EdgeInsets.only(bottom: 10),
|
||||
child: ListTile(
|
||||
leading: Icon(icon),
|
||||
title: Text(title),
|
||||
subtitle: Text(subtitle),
|
||||
trailing: const Icon(Icons.chevron_right_rounded),
|
||||
onTap: onTap,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user