Commit 9701dba

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2024-04-11 19:00:55
improve in-app debug capabilities
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent 6c89593
Changed files (3)
app
app/lib/components/ble_input/ble_input_bloc.dart
@@ -100,6 +100,11 @@ class BleInputBloc extends Bloc<BleInputEvent, BleInputState> {
       ),);
     });
 
+    on<CloseBleInput>((event, emit) async {
+      emit(BleInputClosed());
+      // TODO: cleanup
+    });
+
     // TODO: show capabilities during testing:
     // _ble.getDiscoveredServices()
 
app/lib/components/dialoges/add_measurement_dialoge.dart
@@ -4,6 +4,7 @@ import 'package:blood_pressure_app/components/ble_input/ble_input.dart';
 import 'package:blood_pressure_app/components/date_time_picker.dart';
 import 'package:blood_pressure_app/components/dialoges/fullscreen_dialoge.dart';
 import 'package:blood_pressure_app/components/settings/settings_widgets.dart';
+import 'package:blood_pressure_app/main.dart'; // TODO: remove
 import 'package:blood_pressure_app/model/blood_pressure/medicine/medicine.dart';
 import 'package:blood_pressure_app/model/blood_pressure/medicine/medicine_intake.dart';
 import 'package:blood_pressure_app/model/blood_pressure/needle_pin.dart';
@@ -266,6 +267,9 @@ class _AddEntryDialogeState extends State<AddEntryDialoge> {
           padding: const EdgeInsets.symmetric(horizontal: 8),
           children: [
             BleInput(),
+            TextButton(onPressed: () {
+              Clipboard.setData(ClipboardData(text: errors.join('\n')));
+            }, child: Text('copy debug')),
             if (widget.settings.allowManualTimeInput)
               _buildTimeInput(localizations),
             Form(
app/lib/main.dart
@@ -11,6 +11,7 @@ import 'package:blood_pressure_app/model/storage/settings_store.dart';
 import 'package:blood_pressure_app/model/storage/update_legacy_settings.dart';
 import 'package:blood_pressure_app/screens/home_screen.dart';
 import 'package:blood_pressure_app/screens/loading_screen.dart';
+import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:fluttertoast/fluttertoast.dart';
@@ -22,7 +23,20 @@ import 'package:sqflite/sqflite.dart';
 late final ConfigDB _database;
 late final BloodPressureModel _bloodPressureModel;
 
+// TODO: remove
+final errors = <String>[];
+
 void main() async {
+  // TODO: remove
+  FlutterError.onError = (details) {
+    FlutterError.presentError(details);
+    errors.add('FLUTTER: {{$details}}');
+  };
+  PlatformDispatcher.instance.onError = (error, stack) {
+    errors.add('PLATFORM: {{$error||$stack}}');
+    return true;
+  };
+
   runApp(ConsistentFutureBuilder(
       future: _loadApp(),
       onWaiting: const LoadingScreen(),