Commit fdd7534

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2023-10-09 15:12:58
remove global appLocalizations
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent ca2f6a6
Changed files (3)
lib/model/export_options.dart
@@ -263,26 +263,30 @@ class ExportColumn {
   }
 }
 
+/// Type a [ExportColumn] can be parsed as.
 enum RowDataFieldType {
   timestamp, sys, dia, pul, notes, color;
 
   @override
   String toString() {
-    switch(index) {
-      case 0:
-        return gLocalizations.timestamp;
-      case 1:
-        return gLocalizations.sysLong;
-      case 2:
-        return gLocalizations.diaLong;
-      case 3:
-        return gLocalizations.pulLong;
-      case 4:
-        return gLocalizations.notes;
-      case 5:
-        return gLocalizations.color;
-      default:
-        return "unknown";
+    assert(false, "RowDataFieldType.toString should not be called by UI code. Use localize instead.");
+    return name;
+  }
+
+  String localize(AppLocalizations localizations) {
+    switch(this) {
+      case RowDataFieldType.timestamp:
+        return localizations.timestamp;
+      case RowDataFieldType.sys:
+        return localizations.sysLong;
+      case RowDataFieldType.dia:
+        return localizations.diaLong;
+      case pul:
+        return localizations.pulLong;
+      case RowDataFieldType.notes:
+        return localizations.notes;
+      case RowDataFieldType.color:
+        return localizations.color;
     }
   }
 }
\ No newline at end of file
lib/screens/subsettings/export_import_screen.dart
@@ -321,7 +321,7 @@ class _ExportWarnBannerState extends State<ExportWarnBanner> {
                   message = localizations.exportWarnConfigNotImportable;
                 } else if (_showWarnBanner && fieldSettings.exportCustomFields && missingAttributes.isNotEmpty) {
                   message = localizations.exportWarnNotEveryFieldExported(
-                      missingAttributes.length, missingAttributes.join(', '));
+                      missingAttributes.length, missingAttributes.map((e) => e.localize(localizations)).join(', '));
                 }
 
                 if (message != null) {
lib/main.dart
@@ -10,8 +10,6 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
 import 'package:flutter_localizations/flutter_localizations.dart';
 import 'package:provider/provider.dart';
 
-@Deprecated('see #182')
-late AppLocalizations gLocalizations;
 @Deprecated('This should not be used for new code, but rather for migrating existing code.')
 late final ConfigDao globalConfigDao;
 
@@ -61,8 +59,7 @@ class AppRoot extends StatelessWidget {
       return MaterialApp(
         title: 'Blood Pressure App',
         onGenerateTitle: (context) {
-          gLocalizations = AppLocalizations.of(context)!;
-          return gLocalizations.title;
+          return AppLocalizations.of(context)!.title;
         },
         theme: ThemeData(
             colorScheme: ColorScheme.fromSeed(