Commit f7bec52
Changed files (4)
lib
screens
subsettings
lib/l10n/app_de.arb
@@ -84,6 +84,39 @@
"diaWarn": "Warnwert Dia",
"data": "Daten",
"version": "Version",
+ "versionOf": "Version: {version}",
+ "@versionOf": {
+ "version": {
+ "url": {
+ "type": "String"
+ }
+ }
+ },
+ "buildNumberOf": "Versions Nummer: {buildNumber}",
+ "@buildNumberOf": {
+ "placeholders": {
+ "buildNumber": {
+ "type": "String"
+ }
+ }
+ },
+ "buildSignatureOf": "Build Signatur: {signature}",
+ "@buildSignatureOf": {
+ "placeholders": {
+ "signature": {
+ "type": "String"
+ }
+ }
+ },
+ "packageNameOf": "Paketname: {name}",
+ "@packageNameOf": {
+ "name": {
+ "url": {
+ "type": "String"
+ }
+ }
+ },
+ "sharedPrefsDump": "Shared preferences dump:",
"exportImport": "Exportieren / Importieren",
"exportDir": "Export Ordner",
lib/l10n/app_en.arb
@@ -83,6 +83,39 @@
"diaWarn": "Diastolic warn",
"data": "Data",
"version": "Version",
+ "versionOf": "Version: {version}",
+ "@versionOf": {
+ "placeholders": {
+ "version": {
+ "type": "String"
+ }
+ }
+ },
+ "buildNumberOf": "Version number: {buildNumber}",
+ "@buildNumberOf": {
+ "placeholders": {
+ "buildNumber": {
+ "type": "String"
+ }
+ }
+ },
+ "buildSignatureOf": "Build signature: {signature}",
+ "@buildSignatureOf": {
+ "placeholders": {
+ "signature": {
+ "type": "String"
+ }
+ }
+ },
+ "packageNameOf": "Package name: {name}",
+ "@packageNameOf": {
+ "placeholders": {
+ "name": {
+ "type": "String"
+ }
+ }
+ },
+ "sharedPrefsDump": "Shared preferences dump:",
"exportImport": "Export / Import",
"exportDir": "Export directory",
lib/screens/subsettings/version.dart
@@ -0,0 +1,62 @@
+import 'package:flutter/material.dart';
+import 'package:flutter_gen/gen_l10n/app_localizations.dart';
+import 'package:package_info_plus/package_info_plus.dart';
+import 'package:shared_preferences/shared_preferences.dart';
+
+class VersionScreen extends StatelessWidget {
+
+ const VersionScreen({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ return Scaffold(
+ appBar: AppBar(
+ title: Text(AppLocalizations.of(context)!.version),
+ backgroundColor: Theme.of(context).primaryColor,
+ ),
+ body: Center(
+ child: Container(
+ padding: const EdgeInsets.all(40.0),
+ child: FutureBuilder(
+ future: Future.wait([PackageInfo.fromPlatform(), SharedPreferences.getInstance()]),
+ builder: (context, snapshot) {
+ final localizations = AppLocalizations.of(context);
+ switch (snapshot.connectionState) {
+ case ConnectionState.waiting:
+ return Text(AppLocalizations.of(context)!.loading);
+ default:
+ if (snapshot.hasError) {
+ return Text(AppLocalizations.of(context)!.error(snapshot.error.toString()));
+ } else if (snapshot.hasData && snapshot.data != null) {
+ PackageInfo packageInfo = snapshot.data![0] as PackageInfo;
+ SharedPreferences sharedPrefs = snapshot.data![1] as SharedPreferences;
+ return Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Text(localizations!.packageNameOf(packageInfo.packageName)),
+ Text(localizations.versionOf(packageInfo!.version)),
+ Text(localizations.buildNumberOf(packageInfo.buildNumber)),
+ Text(localizations.buildSignatureOf(packageInfo.buildSignature)),
+ const SizedBox(height: 30,),
+ Text(localizations.sharedPrefsDump),
+ for (final key in sharedPrefs.getKeys())
+ Row(
+ children: [
+ Text('$key:'),
+ const Spacer(),
+ Text(sharedPrefs.get(key).toString()),
+ ],
+ )
+ ]
+ );
+ }
+ }
+ return Text(localizations!.errNotStarted);
+
+ },
+ ),
+ ),
+ ),
+ );
+ }
+}
lib/screens/settings.dart
@@ -2,6 +2,7 @@ import 'package:blood_pressure_app/components/settings_widgets.dart';
import 'package:blood_pressure_app/model/settings_store.dart';
import 'package:blood_pressure_app/screens/subsettings/enter_timeformat.dart';
import 'package:blood_pressure_app/screens/subsettings/export_import_screen.dart';
+import 'package:blood_pressure_app/screens/subsettings/version.dart';
import 'package:blood_pressure_app/screens/subsettings/warn_about.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -278,7 +279,12 @@ class SettingsPage extends StatelessWidget {
title: Text(AppLocalizations.of(context)!.version),
leading: const Icon(Icons.info_outline),
description: Text(description),
- onPressed: (context) {}
+ onPressed: (context) {
+ Navigator.push(
+ context,
+ MaterialPageRoute(builder: (context) => const VersionScreen()),
+ );
+ }
);
},
),