mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-25 08:50:40 +00:00
b13acedebd
* removed redundant `UserPreferencesService` from `MeteringBloc` * wip * post-merge fixes * `MeasureEvent` tests * `MeasureEvent` tests revision * `MeasureEvent` tests added timeout * added stubs for other `MeteringBloc` events * rewritten `MeteringBloc` logic * wip * `IsoChangedEvent` tests * refined `IsoChangedEvent` tests * `NdChangedEvent` tests * `FilmChangedEvent` tests * `MeteringCommunicationBloc` tests * added test run to ci * overriden `==` for `MeasuredState` * `LuxMeteringEvent` tests * refined `LuxMeteringEvent` tests * rename * wip * wip * `InitializeEvent`/`DeinitializeEvent` tests * clamp minZoomLevel * fixed `MeteringCommunicationBloc` tests * wip * `ZoomChangedEvent` tests * `ExposureOffsetChangedEvent`/`ExposureOffsetResetEvent` tests * renamed test groups * added test coverage script * improved `CameraContainerBloc` test coverage * `EquipmentProfileChangedEvent` tests * verify response vibration * fixed running all tests * `MeteringCommunicationBloc` equality tests * `CameraContainerBloc` equality tests * removed generated code from coverage * `MeteringScreenLayoutFeature` tests * `SupportedLocale` tests * `Film` tests * `CaffeineService` tests * `UserPreferencesService` tests (wip) * `LightSensorService` tests (wip) * `migrateOldKeys()` tests * ignore currently unused getters & setters * gradle upgrade * `reset(sharedPreferences);` calls count * typo * `MeteringInteractor` tests * `SettingsInteractor` tests (wip) * `MeteringInteractor` tests (wip) * `SettingsInteractor` tests
53 lines
2.1 KiB
Dart
53 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:lightmeter/data/caffeine_service.dart';
|
|
import 'package:lightmeter/data/haptics_service.dart';
|
|
import 'package:lightmeter/data/light_sensor_service.dart';
|
|
import 'package:lightmeter/data/permissions_service.dart';
|
|
import 'package:lightmeter/data/shared_prefs_service.dart';
|
|
import 'package:lightmeter/data/volume_events_service.dart';
|
|
import 'package:lightmeter/interactors/metering_interactor.dart';
|
|
import 'package:lightmeter/screens/metering/bloc_metering.dart';
|
|
import 'package:lightmeter/screens/metering/communication/bloc_communication_metering.dart';
|
|
import 'package:lightmeter/screens/metering/components/shared/volume_keys_notifier/notifier_volume_keys.dart';
|
|
import 'package:lightmeter/screens/metering/screen_metering.dart';
|
|
import 'package:lightmeter/utils/inherited_generics.dart';
|
|
|
|
class MeteringFlow extends StatefulWidget {
|
|
const MeteringFlow({super.key});
|
|
|
|
@override
|
|
State<MeteringFlow> createState() => _MeteringFlowState();
|
|
}
|
|
|
|
class _MeteringFlowState extends State<MeteringFlow> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return InheritedWidgetBase<MeteringInteractor>(
|
|
data: MeteringInteractor(
|
|
context.get<UserPreferencesService>(),
|
|
context.get<CaffeineService>(),
|
|
context.get<HapticsService>(),
|
|
context.get<PermissionsService>(),
|
|
context.get<LightSensorService>(),
|
|
context.get<VolumeEventsService>(),
|
|
)..initialize(),
|
|
child: InheritedWidgetBase<VolumeKeysNotifier>(
|
|
data: VolumeKeysNotifier(context.get<VolumeEventsService>()),
|
|
child: MultiBlocProvider(
|
|
providers: [
|
|
BlocProvider(create: (_) => MeteringCommunicationBloc()),
|
|
BlocProvider(
|
|
create: (context) => MeteringBloc(
|
|
context.get<MeteringInteractor>(),
|
|
context.get<VolumeKeysNotifier>(),
|
|
context.read<MeteringCommunicationBloc>(),
|
|
),
|
|
),
|
|
],
|
|
child: const MeteringScreen(),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|