Commit 7017833
Changed files (2)
lib
components
measurement_list
screens
lib/components/measurement_list/measurement_list.dart
@@ -1,106 +1,73 @@
import 'package:blood_pressure_app/components/measurement_list/measurement_list_entry.dart';
import 'package:blood_pressure_app/model/blood_pressure.dart';
-import 'package:blood_pressure_app/model/storage/intervall_store.dart';
import 'package:blood_pressure_app/model/storage/settings_store.dart';
-import 'package:blood_pressure_app/screens/blood_pressure_builder.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
class MeasurementList extends StatelessWidget {
- const MeasurementList({super.key, required this.settings});
-
- final Settings settings;
-
- @override
- Widget build(BuildContext context) {
- return Column(
- mainAxisSize: MainAxisSize.min,
- children: [
- MeasurementListHeader(settings: settings,),
- Expanded(
- child: BloodPressureBuilder(
- rangeType: IntervallStoreManagerLocation.mainPage,
- onData: (context, data) {
- return MeasurementListEntries(
- entries: data,
- settings: settings,
- );
- },
- )
- )
- ]
- );
- }
-}
-
-
-class MeasurementListEntries extends StatelessWidget {
- const MeasurementListEntries({super.key, required this.entries, required this.settings});
-
- final List<BloodPressureRecord> entries;
-
- final Settings settings;
-
- @override
- Widget build(BuildContext context) {
- return ListView.builder(
- // Fix actions blocked by floating buttons on different screens and font sizes
- padding: const EdgeInsets.only(bottom: 300),
- itemCount: entries.length,
- itemBuilder: (context, idx) {
- return MeasurementListRow(
- record: entries[idx],
- settings: settings,
- );
- },
- );
- }
-}
-
-class MeasurementListHeader extends StatelessWidget {
- const MeasurementListHeader({super.key, required this.settings});
+ const MeasurementList({super.key, required this.settings, required this.records});
final Settings settings;
+ final List<BloodPressureRecord> records;
@override
Widget build(BuildContext context) {
final localizations = AppLocalizations.of(context)!;
return Column(
- children: [
- Row(
- children: [
- const Expanded(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Column(
+ children: [
+ Row(
+ children: [
+ const Expanded(
flex: 4,
child: SizedBox()),
- Expanded(
- flex: 30,
- child: Text(localizations.sysLong,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(fontWeight: FontWeight.bold, color: settings.sysColor))),
- Expanded(
- flex: 30,
- child: Text(localizations.diaLong,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(fontWeight: FontWeight.bold, color: settings.diaColor))),
- Expanded(
- flex: 30,
- child: Text(localizations.pulLong,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(fontWeight: FontWeight.bold, color: settings.pulColor))),
- const Expanded(
- flex: 20,
- child: SizedBox()),
- ],
- ),
- const SizedBox(
- height: 10,
+ Expanded(
+ flex: 30,
+ child: Text(localizations.sysLong,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(fontWeight: FontWeight.bold, color: settings.sysColor))),
+ Expanded(
+ flex: 30,
+ child: Text(localizations.diaLong,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(fontWeight: FontWeight.bold, color: settings.diaColor))),
+ Expanded(
+ flex: 30,
+ child: Text(localizations.pulLong,
+ overflow: TextOverflow.ellipsis,
+ style: TextStyle(fontWeight: FontWeight.bold, color: settings.pulColor))),
+ const Expanded(
+ flex: 20,
+ child: SizedBox()),
+ ],
+ ),
+ const SizedBox(
+ height: 10,
+ ),
+ Divider(
+ height: 0,
+ thickness: 2,
+ color: Theme.of(context).colorScheme.primaryContainer,
+ )
+ ]
+ ),
+ Expanded(
+ child: ListView.builder(
+ // Fix actions blocked by floating buttons on different screens
+ // and font sizes by adding empty offset to bottom.
+ padding: const EdgeInsets.only(bottom: 300),
+ itemCount: records.length,
+ itemBuilder: (context, idx) {
+ return MeasurementListRow(
+ record: records[idx],
+ settings: settings,
+ );
+ },
),
- Divider(
- height: 0,
- thickness: 2,
- color: Theme.of(context).colorScheme.primaryContainer,
- )
- ]);
+ )
+ ]
+ );
}
-
}
\ No newline at end of file
lib/screens/home_screen.dart
@@ -1,6 +1,8 @@
import 'package:blood_pressure_app/components/dialoges/add_measurement.dart';
import 'package:blood_pressure_app/model/blood_pressure.dart';
+import 'package:blood_pressure_app/model/storage/intervall_store.dart';
import 'package:blood_pressure_app/model/storage/settings_store.dart';
+import 'package:blood_pressure_app/screens/blood_pressure_builder.dart';
import 'package:blood_pressure_app/screens/legacy_measurement_list.dart';
import 'package:blood_pressure_app/screens/measurement_graph.dart';
import 'package:blood_pressure_app/screens/settings_screen.dart';
@@ -58,7 +60,13 @@ class AppHome extends StatelessWidget {
Expanded(
child: (settings.useLegacyList) ?
LegacyMeasurementsList(context) :
- MeasurementList(settings: settings,)
+ BloodPressureBuilder(
+ rangeType: IntervallStoreManagerLocation.mainPage,
+ onData: (context, records) => MeasurementList(
+ settings: settings,
+ records: records,
+ )
+ )
)
]);
}