From 19dfd4c82eb4dbd802d1d6f3a40d1f5ff573deb8 Mon Sep 17 00:00:00 2001 From: klockky Date: Sun, 5 Apr 2026 20:59:30 +0300 Subject: [PATCH] feat(settings): add app version display in settings tab and update dependencies --- .../screens/profile/settings_tab.dart | 29 ++++++++++++++++- pubspec.lock | 32 ++++++++++++++----- pubspec.yaml | 1 + 3 files changed, 53 insertions(+), 9 deletions(-) diff --git a/lib/frontend/screens/profile/settings_tab.dart b/lib/frontend/screens/profile/settings_tab.dart index 3dc116c..4892345 100644 --- a/lib/frontend/screens/profile/settings_tab.dart +++ b/lib/frontend/screens/profile/settings_tab.dart @@ -1,6 +1,6 @@ -import 'dart:async'; import 'package:flutter/material.dart'; import 'package:material_symbols_icons/symbols.dart'; +import 'package:package_info_plus/package_info_plus.dart'; import '../../../core/storage/app_database.dart'; import 'devices_screen.dart'; import 'security_screen.dart'; @@ -16,11 +16,13 @@ class SettingsTab extends StatefulWidget { class _SettingsTabState extends State { ProfileData? _profile; bool _isPhoneVisible = false; + String? _appVersionLabel; @override void initState() { super.initState(); _loadProfile(); + _loadAppVersion(); } Future _loadProfile() async { @@ -28,6 +30,14 @@ class _SettingsTabState extends State { if (mounted) setState(() => _profile = p); } + Future _loadAppVersion() async { + final info = await PackageInfo.fromPlatform(); + if (!mounted) return; + setState(() { + _appVersionLabel = 'Версия ${info.version} (${info.buildNumber})'; + }); + } + @override Widget build(BuildContext context) { final cs = Theme.of(context).colorScheme; @@ -117,6 +127,23 @@ class _SettingsTabState extends State { ), ), ), + if (_appVersionLabel != null) + SliverToBoxAdapter( + child: Padding( + padding: const EdgeInsets.fromLTRB(16, 28, 16, 12), + child: Center( + child: Text( + _appVersionLabel!, + textAlign: TextAlign.center, + style: TextStyle( + color: cs.onSurfaceVariant.withValues(alpha: 0.75), + fontSize: 13, + fontWeight: FontWeight.w400, + ), + ), + ), + ), + ), const SliverToBoxAdapter(child: SizedBox(height: 120)), ], ), diff --git a/pubspec.lock b/pubspec.lock index ca2281c..a6437bc 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: characters - sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.0" clock: dependency: transitive description: @@ -313,18 +313,18 @@ packages: dependency: transitive description: name: matcher - sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 url: "https://pub.dev" source: hosted - version: "0.12.19" + version: "0.12.17" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.13.0" + version: "0.11.1" material_symbols_icons: dependency: "direct main" description: @@ -365,6 +365,22 @@ packages: url: "https://pub.dev" source: hosted version: "9.3.0" + package_info_plus: + dependency: "direct main" + description: + name: package_info_plus + sha256: "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20" + url: "https://pub.dev" + source: hosted + version: "9.0.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086" + url: "https://pub.dev" + source: hosted + version: "3.2.1" path: dependency: "direct main" description: @@ -614,10 +630,10 @@ packages: dependency: transitive description: name: test_api - sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.10" + version: "0.7.7" timezone: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 2dd41b7..d849066 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -51,6 +51,7 @@ dependencies: material_symbols_icons: ^4.2906.0 dynamic_color: ^1.8.1 shared_preferences: ^2.5.4 + package_info_plus: ^9.0.1 dev_dependencies: flutter_test: