Commit 7aa717a

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-10-01 07:53:10
make debug info exportable
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent f3efecc
Changed files (1)
lib
screens
subsettings
lib/screens/subsettings/version.dart
@@ -1,5 +1,6 @@
 import 'package:blood_pressure_app/components/consistent_future_builder.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:shared_preferences/shared_preferences.dart';
@@ -10,40 +11,62 @@ class VersionScreen extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
+    final localizations = AppLocalizations.of(context)!;
     return Scaffold(
       appBar: AppBar(
-        title: Text(AppLocalizations.of(context)!.version),
+        title: Text(localizations.version),
+        actions: [
+          IconButton(
+            onPressed: () async {
+              final packageInfo = await PackageInfo.fromPlatform();
+              final prefs = await SharedPreferences.getInstance();
+              var prefsText = '';
+              for (final key in prefs.getKeys()) {
+                prefsText += '$key:\t${prefs.get(key).toString()}\n';
+              }
+              Clipboard.setData(ClipboardData(
+                  text: 'Blood pressure monitor\nBuild number:${packageInfo.buildNumber}\n$prefsText'
+              ));
+            },
+            tooltip: localizations.export,
+            icon: const Icon(Icons.copy),
+          )
+        ],
         backgroundColor: Theme.of(context).primaryColor,
       ),
-      body: Center(
-        child: Container(
-          padding: const EdgeInsets.all(40.0),
-          child: ConsistentFutureBuilder<List<Object>>(
-            future: Future.wait([PackageInfo.fromPlatform(), SharedPreferences.getInstance()]),
-            onData: (context, data) {
-              final localizations = AppLocalizations.of(context);
-              PackageInfo packageInfo = data[0] as PackageInfo;
-              SharedPreferences sharedPrefs = 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(
+      body: SingleChildScrollView(
+        child: Center(
+          child: Container(
+            padding: const EdgeInsets.all(10.0),
+            child: ConsistentFutureBuilder<List<Object>>(
+              future: Future.wait([PackageInfo.fromPlatform(), SharedPreferences.getInstance()]),
+              onData: (context, data) {
+                final localizations = AppLocalizations.of(context);
+                PackageInfo packageInfo = data[0] as PackageInfo;
+                SharedPreferences sharedPrefs = 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),
+                      Table(
                         children: [
-                          Text('$key:'),
-                          const Spacer(),
-                          Text(sharedPrefs.get(key).toString()),
+                          for (final key in sharedPrefs.getKeys())
+                            TableRow(children: [
+                              Text(key),
+                              Text(sharedPrefs.get(key).toString())
+                            ]),
                         ],
                       )
-                  ]
-              );
-            },
+                    ]
+                );
+              },
+            ),
           ),
         ),
       ),