Commit cfd8c5f

derdilla <derdilla06@gmail.com>
2023-06-26 07:25:34
add version to settings
1 parent 8f5e148
lib/l10n/app_de.arb
@@ -83,6 +83,7 @@
   "sysWarn": "Warnwert Sys",
   "diaWarn": "Warnwert Dia",
   "data": "Daten",
+  "version": "Version",
 
   "exportImport": "Exportieren / Importieren",
   "exportDir": "Export Ordner",
lib/l10n/app_en.arb
@@ -82,6 +82,7 @@
   "sysWarn": "Systolic warn",
   "diaWarn": "Diastolic warn",
   "data": "Data",
+  "version": "Version",
 
   "exportImport": "Export / Import",
   "exportDir": "Export directory",
lib/screens/settings.dart
@@ -6,6 +6,7 @@ import 'package:blood_pressure_app/screens/subsettings/warn_about.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/services.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:package_info_plus/package_info_plus.dart';
 import 'package:provider/provider.dart';
 import 'package:url_launcher/url_launcher.dart';
 
@@ -257,6 +258,30 @@ class SettingsPage extends StatelessWidget {
               ],
             ),
             SettingsSection(title: const Text('about'), children: [
+              FutureBuilder<PackageInfo>(
+                future: PackageInfo.fromPlatform(),
+                builder: (context, snapshot) {
+                  String description = AppLocalizations.of(context)!.errNotStarted;
+                  switch (snapshot.connectionState) {
+                    case ConnectionState.waiting:
+                      description = AppLocalizations.of(context)!.loading;
+                      break;
+                    default:
+                      if (snapshot.hasError) {
+                        description = (AppLocalizations.of(context)!.error(snapshot.error.toString()));
+                      } else if (snapshot.hasData && snapshot.data != null) {
+                        description = snapshot.data!.version;
+                      }
+                  }
+                  return SettingsTile(
+                      key: const Key('version'),
+                      title: Text(AppLocalizations.of(context)!.version),
+                      leading: const Icon(Icons.info_outline),
+                      description: Text(description),
+                      onPressed: (context) {}
+                  );
+                },
+              ),
               SettingsTile(
                 key: const Key('sourceCode'),
                 title: Text(AppLocalizations.of(context)!.sourceCode),
macos/Flutter/GeneratedPluginRegistrant.swift
@@ -6,6 +6,7 @@ import FlutterMacOS
 import Foundation
 
 import file_saver
+import package_info_plus
 import path_provider_foundation
 import share_plus
 import shared_preferences_foundation
@@ -14,6 +15,7 @@ import url_launcher_macos
 
 func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
   FileSaverPlugin.register(with: registry.registrar(forPlugin: "FileSaverPlugin"))
+  FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin"))
   PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
   SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
   SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
pubspec.lock
@@ -453,6 +453,22 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "2.1.0"
+  package_info_plus:
+    dependency: "direct main"
+    description:
+      name: package_info_plus
+      sha256: ceb027f6bc6a60674a233b4a90a7658af1aebdea833da0b5b53c1e9821a78c7b
+      url: "https://pub.dev"
+    source: hosted
+    version: "4.0.2"
+  package_info_plus_platform_interface:
+    dependency: transitive
+    description:
+      name: package_info_plus_platform_interface
+      sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
+      url: "https://pub.dev"
+    source: hosted
+    version: "2.0.1"
   path:
     dependency: "direct main"
     description:
pubspec.yaml
@@ -48,6 +48,7 @@ dependencies:
   mockito: ^5.4.1
   pdf: ^3.10.4
   jsaver: ^1.2.0
+  package_info_plus: ^4.0.2
 
 dev_dependencies:
   flutter_test: