Commit f7bec52

derdilla <derdilla06@gmail.com>
2023-06-26 08:07:18
add debug info page
1 parent cfd8c5f
Changed files (4)
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()),
+                        );
+                      }
                   );
                 },
               ),