m3_lightmeter/lib/screens/settings/components/fractional_stops/widget_list_tile_fractional_stops.dart
Vadim 31ef42c4c0
ML-12 Prepare repo to be public (#13)
* added source code list tile

* added settings sections

* wip

* moved theme tiles to separate folders

* added env

* added contact email

* widget folders

* dynamic colors -> dynamic color

* fixed `SettingsSection` clipBehavior

* version bump

* typo

* updated flutter to 3.7

* added style guide

* typo

* Update style_guide.md

* Update README.md

* Update README.md

* Update README.md
2023-01-25 13:08:11 +03:00

45 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:lightmeter/data/models/photography_values/photography_value.dart';
import 'package:lightmeter/generated/l10n.dart';
import 'package:lightmeter/screens/settings/components/shared/dialog_picker.dart/widget_dialog_picker.dart';
import 'package:lightmeter/utils/stop_type_provider.dart';
import 'package:provider/provider.dart';
class StopTypeListTile extends StatelessWidget {
const StopTypeListTile({super.key});
@override
Widget build(BuildContext context) {
return ListTile(
leading: const Icon(Icons.straighten),
title: Text(S.of(context).fractionalStops),
trailing: Text(_typeToString(context, context.watch<StopType>())),
onTap: () {
showDialog<StopType>(
context: context,
builder: (_) => DialogPicker<StopType>(
title: S.of(context).showFractionalStops,
selectedValue: context.read<StopType>(),
values: StopType.values,
titleAdapter: _typeToString,
),
).then((value) {
if (value != null) {
StopTypeProvider.of(context).set(value);
}
});
},
);
}
String _typeToString(BuildContext context, StopType stopType) {
switch (stopType) {
case StopType.full:
return S.of(context).none;
case StopType.half:
return S.of(context).halfStops;
case StopType.third:
return S.of(context).thirdStops;
}
}
}