Commit 12fdd3b
Changed files (5)
app
lib
app/lib/components/consistent_future_builder.dart
@@ -97,7 +97,7 @@ class _ConsistentFutureBuilderState<T>
return widget.onWaiting ?? Text(localizations?.loading
?? 'loading...',);
case ConnectionState.done:
- _lastChild = widget.onData(context, snapshot.data as T);
+ _lastChild = widget.onData(context, snapshot.data!);
return _lastChild!;
}
},
app/lib/components/repository_builder.dart
@@ -20,10 +20,10 @@ class RepositoryBuilder<T, R extends Repository<T>> extends StatefulWidget {
final Widget Function(BuildContext, List<T>) onData;
@override
- State<RepositoryBuilder> createState() => _RepositoryBuilderState<T, R>();
+ State<RepositoryBuilder<T, R>> createState() => _RepositoryBuilderState<T, R>();
}
-class _RepositoryBuilderState<T, R extends Repository<T>> extends State<RepositoryBuilder> {
+class _RepositoryBuilderState<T, R extends Repository<T>> extends State<RepositoryBuilder<T, R>> {
late final R _repo;
@override
@@ -46,4 +46,3 @@ class _RepositoryBuilderState<T, R extends Repository<T>> extends State<Reposito
},
);
}
-// TODO: test
app/lib/screens/elements/blood_pressure_builder.dart
@@ -25,9 +25,8 @@ class BloodPressureBuilder extends StatelessWidget {
Widget build(BuildContext context) =>
RepositoryBuilder<BloodPressureRecord, BloodPressureRepository>(
rangeType: rangeType,
- // TODO: Figure out why type safety isn't possible. (see home_screen for more info)
- onData: (context, List<dynamic> data) =>
- onData(context, UnmodifiableListView(data.cast())),
+ onData: (context, List<BloodPressureRecord> data) =>
+ onData(context, UnmodifiableListView(data)),
);
}
app/lib/screens/home_screen.dart
@@ -60,19 +60,14 @@ class AppHome extends StatelessWidget {
rangeType: IntervallStoreManagerLocation.mainPage,
onData: (context, records) => RepositoryBuilder<MedicineIntake, MedicineIntakeRepository>(
rangeType: IntervallStoreManagerLocation.mainPage,
- onData: (BuildContext context, List<dynamic> intakes) => RepositoryBuilder<Note, NoteRepository>(
+ onData: (BuildContext context, List<MedicineIntake> intakes) => RepositoryBuilder<Note, NoteRepository>(
rangeType: IntervallStoreManagerLocation.mainPage,
- onData: (BuildContext context, List<dynamic> notes) => MeasurementList(
+ onData: (BuildContext context, List<Note> notes) => MeasurementList(
settings: settings,
records: records,
- // The following cast is necessary to avoid a type
- // error. I'm not sure why this is necessary as the
- // generics _should_ be typesafe. The safety of this
- // cast has been proven in practice.
- // TODO: Figure out why type safety isn't possible.
notes: notes.cast(),
intakes: intakes.cast(),
- ) as Widget,
+ ),
),
),
),