m3_lightmeter/lib/providers/service_provider.dart

65 lines
2.2 KiB
Dart
Raw Normal View History

2023-08-13 13:27:43 +00:00
import 'package:flutter/material.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/environment.dart';
class ServiceProvider extends InheritedWidget {
2023-08-13 13:27:43 +00:00
final CaffeineService caffeineService;
final Environment environment;
final HapticsService hapticsService;
final LightSensorService lightSensorService;
final PermissionsService permissionsService;
final UserPreferencesService userPreferencesService;
final VolumeEventsService volumeEventsService;
const ServiceProvider({
2023-08-13 13:27:43 +00:00
required this.caffeineService,
required this.environment,
required this.hapticsService,
required this.lightSensorService,
required this.permissionsService,
required this.userPreferencesService,
required this.volumeEventsService,
required super.child,
});
static CaffeineService caffeineServiceOf(BuildContext context) {
return ServiceProvider._of(context).caffeineService;
2023-08-13 13:27:43 +00:00
}
static Environment environmentOf(BuildContext context) {
return ServiceProvider._of(context).environment;
2023-08-13 13:27:43 +00:00
}
static HapticsService hapticsServiceOf(BuildContext context) {
return ServiceProvider._of(context).hapticsService;
2023-08-13 13:27:43 +00:00
}
static LightSensorService lightSensorServiceOf(BuildContext context) {
return ServiceProvider._of(context).lightSensorService;
2023-08-13 13:27:43 +00:00
}
static PermissionsService permissionsServiceOf(BuildContext context) {
return ServiceProvider._of(context).permissionsService;
2023-08-13 13:27:43 +00:00
}
static UserPreferencesService userPreferencesServiceOf(BuildContext context) {
return ServiceProvider._of(context).userPreferencesService;
2023-08-13 13:27:43 +00:00
}
static VolumeEventsService volumeEventsServiceOf(BuildContext context) {
return ServiceProvider._of(context).volumeEventsService;
2023-08-13 13:27:43 +00:00
}
static ServiceProvider _of(BuildContext context) {
return context.findAncestorWidgetOfExactType<ServiceProvider>()!;
2023-08-13 13:27:43 +00:00
}
@override
bool updateShouldNotify(ServiceProvider oldWidget) => false;
2023-08-13 13:27:43 +00:00
}