mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2025-03-12 05:10:41 +00:00
untied iso and selected film
This commit is contained in:
parent
7673be4828
commit
0eb6e7cc16
11 changed files with 8 additions and 206 deletions
|
@ -40,7 +40,6 @@ class MeteringBloc extends Bloc<MeteringEvent, MeteringState> {
|
||||||
.listen(onCommunicationState);
|
.listen(onCommunicationState);
|
||||||
|
|
||||||
on<EquipmentProfileChangedEvent>(_onEquipmentProfileChanged);
|
on<EquipmentProfileChangedEvent>(_onEquipmentProfileChanged);
|
||||||
on<FilmChangedEvent>(_onFilmChanged);
|
|
||||||
on<IsoChangedEvent>(_onIsoChanged);
|
on<IsoChangedEvent>(_onIsoChanged);
|
||||||
on<NdChangedEvent>(_onNdChanged);
|
on<NdChangedEvent>(_onNdChanged);
|
||||||
on<MeasureEvent>(_onMeasure, transformer: droppable());
|
on<MeasureEvent>(_onMeasure, transformer: droppable());
|
||||||
|
@ -116,29 +115,6 @@ class MeteringBloc extends Bloc<MeteringEvent, MeteringState> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onFilmChanged(FilmChangedEvent event, Emitter emit) {
|
|
||||||
/// Find `IsoValue` with matching value
|
|
||||||
IsoValue iso = state.iso;
|
|
||||||
if (state.iso.value != event.film.iso && event.film != const Film.other()) {
|
|
||||||
iso = IsoValue.values.firstWhere(
|
|
||||||
(e) => e.value == event.film.iso,
|
|
||||||
orElse: () => state.iso,
|
|
||||||
);
|
|
||||||
_meteringInteractor.iso = iso;
|
|
||||||
|
|
||||||
/// If user selects 'Other' film we preserve currently selected ISO
|
|
||||||
/// and therefore only discard reciprocity formula
|
|
||||||
emit(
|
|
||||||
MeteringDataState(
|
|
||||||
ev100: state.ev100,
|
|
||||||
iso: iso,
|
|
||||||
nd: state.nd,
|
|
||||||
isMetering: state.isMetering,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void _onIsoChanged(IsoChangedEvent event, Emitter emit) {
|
void _onIsoChanged(IsoChangedEvent event, Emitter emit) {
|
||||||
if (state.iso != event.isoValue) {
|
if (state.iso != event.isoValue) {
|
||||||
_meteringInteractor.iso = event.isoValue;
|
_meteringInteractor.iso = event.isoValue;
|
||||||
|
|
|
@ -13,7 +13,6 @@ class CameraContainerProvider extends StatelessWidget {
|
||||||
final ExposurePair? slowest;
|
final ExposurePair? slowest;
|
||||||
final IsoValue iso;
|
final IsoValue iso;
|
||||||
final NdValue nd;
|
final NdValue nd;
|
||||||
final ValueChanged<Film> onFilmChanged;
|
|
||||||
final ValueChanged<IsoValue> onIsoChanged;
|
final ValueChanged<IsoValue> onIsoChanged;
|
||||||
final ValueChanged<NdValue> onNdChanged;
|
final ValueChanged<NdValue> onNdChanged;
|
||||||
final List<ExposurePair> exposurePairs;
|
final List<ExposurePair> exposurePairs;
|
||||||
|
@ -23,7 +22,6 @@ class CameraContainerProvider extends StatelessWidget {
|
||||||
required this.slowest,
|
required this.slowest,
|
||||||
required this.iso,
|
required this.iso,
|
||||||
required this.nd,
|
required this.nd,
|
||||||
required this.onFilmChanged,
|
|
||||||
required this.onIsoChanged,
|
required this.onIsoChanged,
|
||||||
required this.onNdChanged,
|
required this.onNdChanged,
|
||||||
required this.exposurePairs,
|
required this.exposurePairs,
|
||||||
|
@ -43,7 +41,6 @@ class CameraContainerProvider extends StatelessWidget {
|
||||||
slowest: slowest,
|
slowest: slowest,
|
||||||
iso: iso,
|
iso: iso,
|
||||||
nd: nd,
|
nd: nd,
|
||||||
onFilmChanged: onFilmChanged,
|
|
||||||
onIsoChanged: onIsoChanged,
|
onIsoChanged: onIsoChanged,
|
||||||
onNdChanged: onNdChanged,
|
onNdChanged: onNdChanged,
|
||||||
exposurePairs: exposurePairs,
|
exposurePairs: exposurePairs,
|
||||||
|
|
|
@ -24,7 +24,6 @@ class CameraContainer extends StatelessWidget {
|
||||||
final ExposurePair? slowest;
|
final ExposurePair? slowest;
|
||||||
final IsoValue iso;
|
final IsoValue iso;
|
||||||
final NdValue nd;
|
final NdValue nd;
|
||||||
final ValueChanged<Film> onFilmChanged;
|
|
||||||
final ValueChanged<IsoValue> onIsoChanged;
|
final ValueChanged<IsoValue> onIsoChanged;
|
||||||
final ValueChanged<NdValue> onNdChanged;
|
final ValueChanged<NdValue> onNdChanged;
|
||||||
final List<ExposurePair> exposurePairs;
|
final List<ExposurePair> exposurePairs;
|
||||||
|
@ -34,7 +33,6 @@ class CameraContainer extends StatelessWidget {
|
||||||
required this.slowest,
|
required this.slowest,
|
||||||
required this.iso,
|
required this.iso,
|
||||||
required this.nd,
|
required this.nd,
|
||||||
required this.onFilmChanged,
|
|
||||||
required this.onIsoChanged,
|
required this.onIsoChanged,
|
||||||
required this.onNdChanged,
|
required this.onNdChanged,
|
||||||
required this.exposurePairs,
|
required this.exposurePairs,
|
||||||
|
@ -59,7 +57,6 @@ class CameraContainer extends StatelessWidget {
|
||||||
slowest: slowest,
|
slowest: slowest,
|
||||||
iso: iso,
|
iso: iso,
|
||||||
nd: nd,
|
nd: nd,
|
||||||
onFilmChanged: onFilmChanged,
|
|
||||||
onIsoChanged: onIsoChanged,
|
onIsoChanged: onIsoChanged,
|
||||||
onNdChanged: onNdChanged,
|
onNdChanged: onNdChanged,
|
||||||
),
|
),
|
||||||
|
|
|
@ -12,7 +12,6 @@ class LightSensorContainerProvider extends StatelessWidget {
|
||||||
final ExposurePair? slowest;
|
final ExposurePair? slowest;
|
||||||
final IsoValue iso;
|
final IsoValue iso;
|
||||||
final NdValue nd;
|
final NdValue nd;
|
||||||
final ValueChanged<Film> onFilmChanged;
|
|
||||||
final ValueChanged<IsoValue> onIsoChanged;
|
final ValueChanged<IsoValue> onIsoChanged;
|
||||||
final ValueChanged<NdValue> onNdChanged;
|
final ValueChanged<NdValue> onNdChanged;
|
||||||
final List<ExposurePair> exposurePairs;
|
final List<ExposurePair> exposurePairs;
|
||||||
|
@ -22,7 +21,6 @@ class LightSensorContainerProvider extends StatelessWidget {
|
||||||
required this.slowest,
|
required this.slowest,
|
||||||
required this.iso,
|
required this.iso,
|
||||||
required this.nd,
|
required this.nd,
|
||||||
required this.onFilmChanged,
|
|
||||||
required this.onIsoChanged,
|
required this.onIsoChanged,
|
||||||
required this.onNdChanged,
|
required this.onNdChanged,
|
||||||
required this.exposurePairs,
|
required this.exposurePairs,
|
||||||
|
@ -42,7 +40,6 @@ class LightSensorContainerProvider extends StatelessWidget {
|
||||||
slowest: slowest,
|
slowest: slowest,
|
||||||
iso: iso,
|
iso: iso,
|
||||||
nd: nd,
|
nd: nd,
|
||||||
onFilmChanged: onFilmChanged,
|
|
||||||
onIsoChanged: onIsoChanged,
|
onIsoChanged: onIsoChanged,
|
||||||
onNdChanged: onNdChanged,
|
onNdChanged: onNdChanged,
|
||||||
exposurePairs: exposurePairs,
|
exposurePairs: exposurePairs,
|
||||||
|
|
|
@ -11,7 +11,6 @@ class LightSensorContainer extends StatelessWidget {
|
||||||
final ExposurePair? slowest;
|
final ExposurePair? slowest;
|
||||||
final IsoValue iso;
|
final IsoValue iso;
|
||||||
final NdValue nd;
|
final NdValue nd;
|
||||||
final ValueChanged<Film> onFilmChanged;
|
|
||||||
final ValueChanged<IsoValue> onIsoChanged;
|
final ValueChanged<IsoValue> onIsoChanged;
|
||||||
final ValueChanged<NdValue> onNdChanged;
|
final ValueChanged<NdValue> onNdChanged;
|
||||||
final List<ExposurePair> exposurePairs;
|
final List<ExposurePair> exposurePairs;
|
||||||
|
@ -21,7 +20,6 @@ class LightSensorContainer extends StatelessWidget {
|
||||||
required this.slowest,
|
required this.slowest,
|
||||||
required this.iso,
|
required this.iso,
|
||||||
required this.nd,
|
required this.nd,
|
||||||
required this.onFilmChanged,
|
|
||||||
required this.onIsoChanged,
|
required this.onIsoChanged,
|
||||||
required this.onNdChanged,
|
required this.onNdChanged,
|
||||||
required this.exposurePairs,
|
required this.exposurePairs,
|
||||||
|
@ -38,7 +36,6 @@ class LightSensorContainer extends StatelessWidget {
|
||||||
slowest: slowest,
|
slowest: slowest,
|
||||||
iso: iso,
|
iso: iso,
|
||||||
nd: nd,
|
nd: nd,
|
||||||
onFilmChanged: onFilmChanged,
|
|
||||||
onIsoChanged: onIsoChanged,
|
onIsoChanged: onIsoChanged,
|
||||||
onNdChanged: onNdChanged,
|
onNdChanged: onNdChanged,
|
||||||
),
|
),
|
||||||
|
|
|
@ -14,7 +14,6 @@ class ReadingsContainer extends StatelessWidget {
|
||||||
final ExposurePair? slowest;
|
final ExposurePair? slowest;
|
||||||
final IsoValue iso;
|
final IsoValue iso;
|
||||||
final NdValue nd;
|
final NdValue nd;
|
||||||
final ValueChanged<Film> onFilmChanged;
|
|
||||||
final ValueChanged<IsoValue> onIsoChanged;
|
final ValueChanged<IsoValue> onIsoChanged;
|
||||||
final ValueChanged<NdValue> onNdChanged;
|
final ValueChanged<NdValue> onNdChanged;
|
||||||
|
|
||||||
|
@ -23,7 +22,6 @@ class ReadingsContainer extends StatelessWidget {
|
||||||
required this.slowest,
|
required this.slowest,
|
||||||
required this.iso,
|
required this.iso,
|
||||||
required this.nd,
|
required this.nd,
|
||||||
required this.onFilmChanged,
|
|
||||||
required this.onIsoChanged,
|
required this.onIsoChanged,
|
||||||
required this.onNdChanged,
|
required this.onNdChanged,
|
||||||
super.key,
|
super.key,
|
||||||
|
|
|
@ -10,12 +10,6 @@ class EquipmentProfileChangedEvent extends MeteringEvent {
|
||||||
const EquipmentProfileChangedEvent(this.equipmentProfileData);
|
const EquipmentProfileChangedEvent(this.equipmentProfileData);
|
||||||
}
|
}
|
||||||
|
|
||||||
class FilmChangedEvent extends MeteringEvent {
|
|
||||||
final Film film;
|
|
||||||
|
|
||||||
const FilmChangedEvent(this.film);
|
|
||||||
}
|
|
||||||
|
|
||||||
class IsoChangedEvent extends MeteringEvent {
|
class IsoChangedEvent extends MeteringEvent {
|
||||||
final IsoValue isoValue;
|
final IsoValue isoValue;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,6 @@ import 'package:lightmeter/screens/metering/components/camera_container/provider
|
||||||
import 'package:lightmeter/screens/metering/components/light_sensor_container/provider_container_light_sensor.dart';
|
import 'package:lightmeter/screens/metering/components/light_sensor_container/provider_container_light_sensor.dart';
|
||||||
import 'package:lightmeter/screens/metering/event_metering.dart';
|
import 'package:lightmeter/screens/metering/event_metering.dart';
|
||||||
import 'package:lightmeter/screens/metering/state_metering.dart';
|
import 'package:lightmeter/screens/metering/state_metering.dart';
|
||||||
import 'package:lightmeter/screens/metering/utils/film_listener.dart';
|
|
||||||
import 'package:lightmeter/screens/metering/utils/listener_metering_layout_feature.dart';
|
import 'package:lightmeter/screens/metering/utils/listener_metering_layout_feature.dart';
|
||||||
import 'package:lightmeter/screens/metering/utils/listsner_equipment_profiles.dart';
|
import 'package:lightmeter/screens/metering/utils/listsner_equipment_profiles.dart';
|
||||||
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
||||||
|
@ -35,8 +34,6 @@ class MeteringScreen extends StatelessWidget {
|
||||||
ev: state is MeteringDataState ? state.ev : null,
|
ev: state is MeteringDataState ? state.ev : null,
|
||||||
iso: state.iso,
|
iso: state.iso,
|
||||||
nd: state.nd,
|
nd: state.nd,
|
||||||
onFilmChanged: (value) =>
|
|
||||||
context.read<MeteringBloc>().add(FilmChangedEvent(value)),
|
|
||||||
onIsoChanged: (value) => context.read<MeteringBloc>().add(IsoChangedEvent(value)),
|
onIsoChanged: (value) => context.read<MeteringBloc>().add(IsoChangedEvent(value)),
|
||||||
onNdChanged: (value) => context.read<MeteringBloc>().add(NdChangedEvent(value)),
|
onNdChanged: (value) => context.read<MeteringBloc>().add(NdChangedEvent(value)),
|
||||||
),
|
),
|
||||||
|
@ -72,23 +69,18 @@ class _InheritedListeners extends StatelessWidget {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return FilmListener(
|
return EquipmentProfileListener(
|
||||||
onDidChangeDependencies: (value) {
|
onDidChangeDependencies: (value) {
|
||||||
context.read<MeteringBloc>().add(FilmChangedEvent(value));
|
context.read<MeteringBloc>().add(EquipmentProfileChangedEvent(value));
|
||||||
},
|
},
|
||||||
child: EquipmentProfileListener(
|
child: MeteringScreenLayoutFeatureListener(
|
||||||
|
feature: MeteringScreenLayoutFeature.filmPicker,
|
||||||
onDidChangeDependencies: (value) {
|
onDidChangeDependencies: (value) {
|
||||||
context.read<MeteringBloc>().add(EquipmentProfileChangedEvent(value));
|
if (!value) {
|
||||||
|
FilmsProvider.of(context).setFilm(const Film.other());
|
||||||
|
}
|
||||||
},
|
},
|
||||||
child: MeteringScreenLayoutFeatureListener(
|
child: child,
|
||||||
feature: MeteringScreenLayoutFeature.filmPicker,
|
|
||||||
onDidChangeDependencies: (value) {
|
|
||||||
if (!value) {
|
|
||||||
FilmsProvider.of(context).setFilm(const Film.other());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
child: child,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -98,7 +90,6 @@ class MeteringContainerBuidler extends StatelessWidget {
|
||||||
final double? ev;
|
final double? ev;
|
||||||
final IsoValue iso;
|
final IsoValue iso;
|
||||||
final NdValue nd;
|
final NdValue nd;
|
||||||
final ValueChanged<Film> onFilmChanged;
|
|
||||||
final ValueChanged<IsoValue> onIsoChanged;
|
final ValueChanged<IsoValue> onIsoChanged;
|
||||||
final ValueChanged<NdValue> onNdChanged;
|
final ValueChanged<NdValue> onNdChanged;
|
||||||
|
|
||||||
|
@ -106,7 +97,6 @@ class MeteringContainerBuidler extends StatelessWidget {
|
||||||
required this.ev,
|
required this.ev,
|
||||||
required this.iso,
|
required this.iso,
|
||||||
required this.nd,
|
required this.nd,
|
||||||
required this.onFilmChanged,
|
|
||||||
required this.onIsoChanged,
|
required this.onIsoChanged,
|
||||||
required this.onNdChanged,
|
required this.onNdChanged,
|
||||||
});
|
});
|
||||||
|
@ -130,7 +120,6 @@ class MeteringContainerBuidler extends StatelessWidget {
|
||||||
slowest: slowest,
|
slowest: slowest,
|
||||||
iso: iso,
|
iso: iso,
|
||||||
nd: nd,
|
nd: nd,
|
||||||
onFilmChanged: onFilmChanged,
|
|
||||||
onIsoChanged: onIsoChanged,
|
onIsoChanged: onIsoChanged,
|
||||||
onNdChanged: onNdChanged,
|
onNdChanged: onNdChanged,
|
||||||
exposurePairs: exposurePairs,
|
exposurePairs: exposurePairs,
|
||||||
|
@ -140,7 +129,6 @@ class MeteringContainerBuidler extends StatelessWidget {
|
||||||
slowest: slowest,
|
slowest: slowest,
|
||||||
iso: iso,
|
iso: iso,
|
||||||
nd: nd,
|
nd: nd,
|
||||||
onFilmChanged: onFilmChanged,
|
|
||||||
onIsoChanged: onIsoChanged,
|
onIsoChanged: onIsoChanged,
|
||||||
onNdChanged: onNdChanged,
|
onNdChanged: onNdChanged,
|
||||||
exposurePairs: exposurePairs,
|
exposurePairs: exposurePairs,
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
|
||||||
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
|
||||||
|
|
||||||
class EquipmentProfileListener extends StatefulWidget {
|
|
||||||
final ValueChanged<EquipmentProfile> onDidChangeDependencies;
|
|
||||||
final Widget child;
|
|
||||||
|
|
||||||
const EquipmentProfileListener({
|
|
||||||
required this.onDidChangeDependencies,
|
|
||||||
required this.child,
|
|
||||||
super.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<EquipmentProfileListener> createState() => _EquipmentProfileListenerState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _EquipmentProfileListenerState extends State<EquipmentProfileListener> {
|
|
||||||
@override
|
|
||||||
void didChangeDependencies() {
|
|
||||||
super.didChangeDependencies();
|
|
||||||
widget.onDidChangeDependencies(EquipmentProfiles.selectedOf(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return widget.child;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:m3_lightmeter_iap/m3_lightmeter_iap.dart';
|
|
||||||
import 'package:m3_lightmeter_resources/m3_lightmeter_resources.dart';
|
|
||||||
|
|
||||||
class FilmListener extends StatefulWidget {
|
|
||||||
final ValueChanged<Film> onDidChangeDependencies;
|
|
||||||
final Widget child;
|
|
||||||
|
|
||||||
const FilmListener({
|
|
||||||
required this.onDidChangeDependencies,
|
|
||||||
required this.child,
|
|
||||||
super.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<FilmListener> createState() => _FilmListenerState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _FilmListenerState extends State<FilmListener> {
|
|
||||||
@override
|
|
||||||
void didChangeDependencies() {
|
|
||||||
super.didChangeDependencies();
|
|
||||||
widget.onDidChangeDependencies(Films.selectedOf(context));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return widget.child;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -361,88 +361,6 @@ void main() {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
group(
|
|
||||||
'`FilmChangedEvent`',
|
|
||||||
() {
|
|
||||||
blocTest<MeteringBloc, MeteringState>(
|
|
||||||
'Pick different film with different ISO',
|
|
||||||
build: () => bloc,
|
|
||||||
seed: () => MeteringDataState(
|
|
||||||
ev100: 1.0,
|
|
||||||
iso: const IsoValue(100, StopType.full),
|
|
||||||
nd: NdValue.values.first,
|
|
||||||
isMetering: false,
|
|
||||||
),
|
|
||||||
act: (bloc) async {
|
|
||||||
bloc.add(const FilmChangedEvent(FomapanFilm.creative200()));
|
|
||||||
},
|
|
||||||
verify: (_) {
|
|
||||||
verify(() => meteringInteractor.iso = const IsoValue(200, StopType.full)).called(1);
|
|
||||||
},
|
|
||||||
expect: () => [
|
|
||||||
isA<MeteringDataState>()
|
|
||||||
.having((state) => state.ev100, 'ev100', 1.0)
|
|
||||||
.having((state) => state.ev, 'ev', 2.0)
|
|
||||||
.having((state) => state.iso, 'iso', const IsoValue(200, StopType.full))
|
|
||||||
.having((state) => state.nd, 'nd', NdValue.values.first)
|
|
||||||
.having((state) => state.isMetering, 'isMetering', false),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
blocTest<MeteringBloc, MeteringState>(
|
|
||||||
'Pick different film with same ISO',
|
|
||||||
build: () => bloc,
|
|
||||||
seed: () => MeteringDataState(
|
|
||||||
ev100: 1.0,
|
|
||||||
iso: const IsoValue(100, StopType.full),
|
|
||||||
nd: NdValue.values.first,
|
|
||||||
isMetering: false,
|
|
||||||
),
|
|
||||||
act: (bloc) async {
|
|
||||||
bloc.add(const FilmChangedEvent(IlfordFilm.delta100()));
|
|
||||||
},
|
|
||||||
verify: (_) {
|
|
||||||
verifyNever(() => meteringInteractor.iso = const IsoValue(100, StopType.full));
|
|
||||||
},
|
|
||||||
expect: () => [],
|
|
||||||
);
|
|
||||||
|
|
||||||
blocTest<MeteringBloc, MeteringState>(
|
|
||||||
'Pick same film',
|
|
||||||
build: () => bloc,
|
|
||||||
seed: () => MeteringDataState(
|
|
||||||
ev100: 1.0,
|
|
||||||
iso: const IsoValue(100, StopType.full),
|
|
||||||
nd: NdValue.values.first,
|
|
||||||
isMetering: false,
|
|
||||||
),
|
|
||||||
act: (bloc) async {
|
|
||||||
bloc.add(const FilmChangedEvent(FomapanFilm.creative100()));
|
|
||||||
},
|
|
||||||
expect: () => [],
|
|
||||||
);
|
|
||||||
|
|
||||||
blocTest<MeteringBloc, MeteringState>(
|
|
||||||
'Pick `Film.other()`',
|
|
||||||
build: () => bloc,
|
|
||||||
seed: () => MeteringDataState(
|
|
||||||
ev100: 1.0,
|
|
||||||
iso: const IsoValue(100, StopType.full),
|
|
||||||
nd: NdValue.values.first,
|
|
||||||
isMetering: false,
|
|
||||||
),
|
|
||||||
act: (bloc) async {
|
|
||||||
bloc.add(const FilmChangedEvent(Film.other()));
|
|
||||||
},
|
|
||||||
verify: (_) {
|
|
||||||
verifyNever(() => meteringInteractor.iso = const IsoValue(0, StopType.full));
|
|
||||||
verifyNever(() => meteringInteractor.responseVibration());
|
|
||||||
},
|
|
||||||
expect: () => [],
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
group(
|
group(
|
||||||
'`EquipmentProfileChangedEvent`',
|
'`EquipmentProfileChangedEvent`',
|
||||||
() {
|
() {
|
||||||
|
|
Loading…
Reference in a new issue