2022-10-30 18:23:06 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2023-01-30 08:38:49 +00:00
|
|
|
import 'package:lightmeter/data/models/dynamic_colors_state.dart';
|
2022-10-30 18:59:33 +00:00
|
|
|
import 'package:lightmeter/generated/l10n.dart';
|
|
|
|
import 'package:lightmeter/res/dimens.dart';
|
2023-01-30 08:38:49 +00:00
|
|
|
import 'package:provider/provider.dart';
|
2022-10-30 18:59:33 +00:00
|
|
|
|
2023-01-26 09:10:23 +00:00
|
|
|
import 'components/calibration/widget_list_tile_calibration.dart';
|
2023-01-21 10:37:49 +00:00
|
|
|
import 'components/haptics/provider_list_tile_haptics.dart';
|
2023-01-29 17:49:44 +00:00
|
|
|
import 'components/primary_color/widget_list_tile_primary_color.dart';
|
2023-01-25 10:08:11 +00:00
|
|
|
import 'components/report_issue/widget_list_tile_report_issue.dart';
|
|
|
|
import 'components/shared/settings_section/widget_settings_section.dart';
|
|
|
|
import 'components/source_code/widget_list_tile_source_code.dart';
|
|
|
|
import 'components/dynamic_color/widget_list_tile_dynamic_color.dart';
|
|
|
|
import 'components/theme_type/widget_list_tile_theme_type.dart';
|
|
|
|
import 'components/version/widget_list_tile_version.dart';
|
|
|
|
import 'components/fractional_stops/widget_list_tile_fractional_stops.dart';
|
|
|
|
import 'components/write_email/widget_list_tile_write_email.dart';
|
2022-10-30 18:23:06 +00:00
|
|
|
|
|
|
|
class SettingsScreen extends StatelessWidget {
|
|
|
|
const SettingsScreen({super.key});
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Scaffold(
|
2022-12-17 18:05:50 +00:00
|
|
|
body: SafeArea(
|
|
|
|
top: false,
|
|
|
|
child: CustomScrollView(
|
|
|
|
slivers: <Widget>[
|
|
|
|
SliverAppBar(
|
|
|
|
pinned: true,
|
|
|
|
automaticallyImplyLeading: false,
|
|
|
|
expandedHeight: Dimens.grid168,
|
|
|
|
flexibleSpace: FlexibleSpaceBar(
|
|
|
|
centerTitle: false,
|
|
|
|
titlePadding: const EdgeInsets.all(Dimens.paddingM),
|
|
|
|
title: Text(
|
|
|
|
S.of(context).settings,
|
2023-01-26 15:03:48 +00:00
|
|
|
style: TextStyle(
|
|
|
|
color: Theme.of(context).colorScheme.onSurface,
|
|
|
|
fontSize: 24,
|
|
|
|
),
|
2022-12-17 18:05:50 +00:00
|
|
|
),
|
2022-10-30 18:59:33 +00:00
|
|
|
),
|
2022-12-17 18:05:50 +00:00
|
|
|
actions: [
|
|
|
|
IconButton(
|
|
|
|
onPressed: Navigator.of(context).pop,
|
|
|
|
icon: const Icon(Icons.close),
|
|
|
|
),
|
|
|
|
],
|
2022-10-30 18:59:33 +00:00
|
|
|
),
|
2022-12-17 18:05:50 +00:00
|
|
|
SliverList(
|
|
|
|
delegate: SliverChildListDelegate(
|
2023-01-25 10:08:11 +00:00
|
|
|
<SettingsSection>[
|
|
|
|
SettingsSection(
|
|
|
|
title: S.of(context).metering,
|
|
|
|
children: const [
|
|
|
|
StopTypeListTile(),
|
2023-01-26 09:10:23 +00:00
|
|
|
CalibrationListTile(),
|
2023-01-25 10:08:11 +00:00
|
|
|
],
|
|
|
|
),
|
|
|
|
SettingsSection(
|
|
|
|
title: S.of(context).general,
|
|
|
|
children: const [
|
|
|
|
HapticsListTileProvider(),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
SettingsSection(
|
|
|
|
title: S.of(context).theme,
|
2023-01-30 08:38:49 +00:00
|
|
|
children: [
|
|
|
|
const ThemeTypeListTile(),
|
|
|
|
const PrimaryColorListTile(),
|
|
|
|
if (context.read<DynamicColorState>() != DynamicColorState.unavailable)
|
|
|
|
const DynamicColorListTile(),
|
2023-01-25 10:08:11 +00:00
|
|
|
],
|
|
|
|
),
|
|
|
|
SettingsSection(
|
|
|
|
title: S.of(context).about,
|
|
|
|
children: const [
|
|
|
|
SourceCodeListTile(),
|
|
|
|
ReportIssueListTile(),
|
|
|
|
WriteEmailListTile(),
|
|
|
|
VersionListTile(),
|
|
|
|
],
|
|
|
|
),
|
2022-12-17 18:05:50 +00:00
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
2022-10-30 18:23:06 +00:00
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|