mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-23 16:00:41 +00:00
adjusted some colors
This commit is contained in:
parent
48d8439216
commit
31b7528e64
9 changed files with 81 additions and 61 deletions
|
@ -4,6 +4,7 @@ import 'package:flutter/scheduler.dart';
|
||||||
import 'package:lightmeter/data/models/dynamic_colors_state.dart';
|
import 'package:lightmeter/data/models/dynamic_colors_state.dart';
|
||||||
import 'package:lightmeter/data/models/theme_type.dart';
|
import 'package:lightmeter/data/models/theme_type.dart';
|
||||||
import 'package:lightmeter/data/shared_prefs_service.dart';
|
import 'package:lightmeter/data/shared_prefs_service.dart';
|
||||||
|
import 'package:lightmeter/res/dimens.dart';
|
||||||
import 'package:material_color_utilities/material_color_utilities.dart';
|
import 'package:material_color_utilities/material_color_utilities.dart';
|
||||||
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
@ -174,12 +175,31 @@ class _ThemeDataProvider extends StatelessWidget {
|
||||||
brightness: scheme.brightness,
|
brightness: scheme.brightness,
|
||||||
primaryColor: primaryColor,
|
primaryColor: primaryColor,
|
||||||
colorScheme: scheme,
|
colorScheme: scheme,
|
||||||
|
appBarTheme: AppBarTheme(
|
||||||
|
elevation: 4,
|
||||||
|
color: scheme.surface,
|
||||||
|
surfaceTintColor: scheme.surfaceTint,
|
||||||
|
),
|
||||||
|
cardTheme: CardTheme(
|
||||||
|
clipBehavior: Clip.antiAlias,
|
||||||
|
color: scheme.surface,
|
||||||
|
elevation: 4,
|
||||||
|
margin: EdgeInsets.zero,
|
||||||
|
shadowColor: Colors.transparent,
|
||||||
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(Dimens.borderRadiusL)),
|
||||||
|
surfaceTintColor: scheme.surfaceTint,
|
||||||
|
),
|
||||||
dialogBackgroundColor: scheme.surface,
|
dialogBackgroundColor: scheme.surface,
|
||||||
dialogTheme: DialogTheme(
|
dialogTheme: DialogTheme(
|
||||||
backgroundColor: scheme.surface,
|
backgroundColor: scheme.surface,
|
||||||
surfaceTintColor: scheme.surfaceTint,
|
surfaceTintColor: scheme.surfaceTint,
|
||||||
elevation: 6,
|
elevation: 6,
|
||||||
),
|
),
|
||||||
|
listTileTheme: ListTileThemeData(
|
||||||
|
style: ListTileStyle.list,
|
||||||
|
iconColor: scheme.onSurface,
|
||||||
|
textColor: scheme.onSurface,
|
||||||
|
),
|
||||||
scaffoldBackgroundColor: scheme.surface,
|
scaffoldBackgroundColor: scheme.surface,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:lightmeter/res/dimens.dart';
|
|
||||||
import 'package:lightmeter/screens/shared/filled_circle/widget_circle_filled.dart';
|
|
||||||
|
|
||||||
class MeteringSecondaryButton extends StatelessWidget {
|
|
||||||
final IconData icon;
|
|
||||||
final VoidCallback onPressed;
|
|
||||||
|
|
||||||
const MeteringSecondaryButton({
|
|
||||||
required this.icon,
|
|
||||||
required this.onPressed,
|
|
||||||
super.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Center(
|
|
||||||
child: FilledCircle(
|
|
||||||
color: Theme.of(context).colorScheme.surfaceVariant,
|
|
||||||
size: Dimens.grid48,
|
|
||||||
child: Center(
|
|
||||||
child: IconButton(
|
|
||||||
onPressed: onPressed,
|
|
||||||
color: Theme.of(context).colorScheme.onSurface,
|
|
||||||
icon: Icon(icon),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:lightmeter/res/dimens.dart';
|
||||||
|
|
||||||
|
import 'widget_bottom_controls.dart';
|
||||||
|
|
||||||
|
class MeteringBottomControlsProvider extends StatelessWidget {
|
||||||
|
final VoidCallback? onSwitchEvSourceType;
|
||||||
|
final VoidCallback onMeasure;
|
||||||
|
final VoidCallback onSettings;
|
||||||
|
|
||||||
|
const MeteringBottomControlsProvider({
|
||||||
|
required this.onSwitchEvSourceType,
|
||||||
|
required this.onMeasure,
|
||||||
|
required this.onSettings,
|
||||||
|
super.key,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final scheme = Theme.of(context).colorScheme;
|
||||||
|
return IconButtonTheme(
|
||||||
|
data: IconButtonThemeData(
|
||||||
|
style: ButtonStyle(
|
||||||
|
backgroundColor: MaterialStatePropertyAll(scheme.surface),
|
||||||
|
elevation: const MaterialStatePropertyAll(4),
|
||||||
|
iconColor: MaterialStatePropertyAll(scheme.onSurface),
|
||||||
|
shadowColor: const MaterialStatePropertyAll(Colors.transparent),
|
||||||
|
surfaceTintColor: MaterialStatePropertyAll(scheme.surfaceTint),
|
||||||
|
fixedSize: const MaterialStatePropertyAll(Size(Dimens.grid48, Dimens.grid48)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: MeteringBottomControls(
|
||||||
|
onSwitchEvSourceType: onSwitchEvSourceType,
|
||||||
|
onMeasure: onMeasure,
|
||||||
|
onSettings: onSettings,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,6 @@ import 'package:lightmeter/res/dimens.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import 'components/measure_button/widget_button_measure.dart';
|
import 'components/measure_button/widget_button_measure.dart';
|
||||||
import 'components/secondary_button/widget_button_secondary.dart';
|
|
||||||
|
|
||||||
class MeteringBottomControls extends StatelessWidget {
|
class MeteringBottomControls extends StatelessWidget {
|
||||||
final VoidCallback? onSwitchEvSourceType;
|
final VoidCallback? onSwitchEvSourceType;
|
||||||
|
@ -36,11 +35,13 @@ class MeteringBottomControls extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
if (onSwitchEvSourceType != null)
|
if (onSwitchEvSourceType != null)
|
||||||
Expanded(
|
Expanded(
|
||||||
child: MeteringSecondaryButton(
|
child: Center(
|
||||||
onPressed: onSwitchEvSourceType!,
|
child: IconButton(
|
||||||
icon: context.watch<EvSourceType>() != EvSourceType.camera
|
onPressed: onSwitchEvSourceType,
|
||||||
? Icons.camera_rear
|
icon: Icon(context.watch<EvSourceType>() != EvSourceType.camera
|
||||||
: Icons.wb_incandescent,
|
? Icons.camera_rear
|
||||||
|
: Icons.wb_incandescent),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
|
@ -49,9 +50,11 @@ class MeteringBottomControls extends StatelessWidget {
|
||||||
onTap: onMeasure,
|
onTap: onMeasure,
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: MeteringSecondaryButton(
|
child: Center(
|
||||||
onPressed: onSettings,
|
child: IconButton(
|
||||||
icon: Icons.settings,
|
onPressed: onSettings,
|
||||||
|
icon: const Icon(Icons.settings),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -141,13 +141,7 @@ class AnimatedDialogState extends State<AnimatedDialog> with SingleTickerProvide
|
||||||
onTap: _openDialog,
|
onTap: _openDialog,
|
||||||
child: Opacity(
|
child: Opacity(
|
||||||
opacity: _isDialogShown ? 0 : 1,
|
opacity: _isDialogShown ? 0 : 1,
|
||||||
child: ClipRRect(
|
child: widget.child ?? widget.closedChild,
|
||||||
borderRadius: BorderRadius.circular(Dimens.borderRadiusM),
|
|
||||||
child: ColoredBox(
|
|
||||||
color: Theme.of(context).colorScheme.primaryContainer,
|
|
||||||
child: widget.child ?? widget.closedChild,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,12 +12,10 @@ class ReadingValue {
|
||||||
}
|
}
|
||||||
|
|
||||||
class ReadingValueContainer extends StatelessWidget {
|
class ReadingValueContainer extends StatelessWidget {
|
||||||
final Color? backgroundColor;
|
|
||||||
late final List<Widget> _items;
|
late final List<Widget> _items;
|
||||||
|
|
||||||
ReadingValueContainer({
|
ReadingValueContainer({
|
||||||
required List<ReadingValue> values,
|
required List<ReadingValue> values,
|
||||||
this.backgroundColor,
|
|
||||||
super.key,
|
super.key,
|
||||||
}) {
|
}) {
|
||||||
_items = [];
|
_items = [];
|
||||||
|
@ -31,7 +29,6 @@ class ReadingValueContainer extends StatelessWidget {
|
||||||
|
|
||||||
ReadingValueContainer.singleValue({
|
ReadingValueContainer.singleValue({
|
||||||
required ReadingValue value,
|
required ReadingValue value,
|
||||||
this.backgroundColor,
|
|
||||||
super.key,
|
super.key,
|
||||||
}) : _items = [_ReadingValueBuilder(value)];
|
}) : _items = [_ReadingValueBuilder(value)];
|
||||||
|
|
||||||
|
@ -40,7 +37,7 @@ class ReadingValueContainer extends StatelessWidget {
|
||||||
return ClipRRect(
|
return ClipRRect(
|
||||||
borderRadius: BorderRadius.circular(Dimens.borderRadiusM),
|
borderRadius: BorderRadius.circular(Dimens.borderRadiusM),
|
||||||
child: ColoredBox(
|
child: ColoredBox(
|
||||||
color: backgroundColor ?? Theme.of(context).colorScheme.primaryContainer,
|
color: Theme.of(context).colorScheme.primaryContainer,
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(Dimens.paddingM),
|
padding: const EdgeInsets.all(Dimens.paddingM),
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
|
@ -89,7 +89,6 @@ class _IsoValueTile extends StatelessWidget {
|
||||||
evDifferenceBuilder: (selected, other) => selected.toStringDifference(other),
|
evDifferenceBuilder: (selected, other) => selected.toStringDifference(other),
|
||||||
onChanged: onChanged,
|
onChanged: onChanged,
|
||||||
closedChild: ReadingValueContainer.singleValue(
|
closedChild: ReadingValueContainer.singleValue(
|
||||||
backgroundColor: null,
|
|
||||||
value: ReadingValue(
|
value: ReadingValue(
|
||||||
label: S.of(context).iso,
|
label: S.of(context).iso,
|
||||||
value: value.value.toString(),
|
value: value.value.toString(),
|
||||||
|
@ -119,9 +118,8 @@ class _NdValueTile extends StatelessWidget {
|
||||||
evDifferenceBuilder: (selected, other) => other.toStringDifference(selected),
|
evDifferenceBuilder: (selected, other) => other.toStringDifference(selected),
|
||||||
onChanged: onChanged,
|
onChanged: onChanged,
|
||||||
closedChild: ReadingValueContainer.singleValue(
|
closedChild: ReadingValueContainer.singleValue(
|
||||||
backgroundColor: null,
|
|
||||||
value: ReadingValue(
|
value: ReadingValue(
|
||||||
label: S.of(context).iso,
|
label: S.of(context).nd,
|
||||||
value: value.value.toString(),
|
value: value.value.toString(),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -5,7 +5,7 @@ import 'package:lightmeter/data/models/photography_values/photography_value.dart
|
||||||
import 'package:lightmeter/environment.dart';
|
import 'package:lightmeter/environment.dart';
|
||||||
import 'package:lightmeter/providers/ev_source_type_provider.dart';
|
import 'package:lightmeter/providers/ev_source_type_provider.dart';
|
||||||
|
|
||||||
import 'components/bottom_controls/widget_bottom_controls.dart';
|
import 'components/bottom_controls/provider_bottom_controls.dart';
|
||||||
import 'components/camera_container/provider_container_camera.dart';
|
import 'components/camera_container/provider_container_camera.dart';
|
||||||
import 'components/light_sensor_container/provider_container_light_sensor.dart';
|
import 'components/light_sensor_container/provider_container_light_sensor.dart';
|
||||||
import 'bloc_metering.dart';
|
import 'bloc_metering.dart';
|
||||||
|
@ -57,7 +57,7 @@ class _MeteringScreenState extends State<MeteringScreen> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
MeteringBottomControls(
|
MeteringBottomControlsProvider(
|
||||||
onSwitchEvSourceType: context.read<Environment>().hasLightSensor
|
onSwitchEvSourceType: context.read<Environment>().hasLightSensor
|
||||||
? EvSourceTypeProvider.of(context).toggleType
|
? EvSourceTypeProvider.of(context).toggleType
|
||||||
: null,
|
: null,
|
||||||
|
|
|
@ -20,10 +20,7 @@ class SettingsSection extends StatelessWidget {
|
||||||
Dimens.paddingM,
|
Dimens.paddingM,
|
||||||
Dimens.paddingM,
|
Dimens.paddingM,
|
||||||
),
|
),
|
||||||
child: Material(
|
child: Card(
|
||||||
clipBehavior: Clip.antiAlias,
|
|
||||||
borderRadius: BorderRadius.circular(Dimens.borderRadiusL),
|
|
||||||
color: Theme.of(context).colorScheme.primaryContainer,
|
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: Dimens.paddingM),
|
padding: const EdgeInsets.symmetric(vertical: Dimens.paddingM),
|
||||||
child: Column(
|
child: Column(
|
||||||
|
@ -34,7 +31,10 @@ class SettingsSection extends StatelessWidget {
|
||||||
padding: const EdgeInsets.only(left: Dimens.paddingM),
|
padding: const EdgeInsets.only(left: Dimens.paddingM),
|
||||||
child: Text(
|
child: Text(
|
||||||
title,
|
title,
|
||||||
style: Theme.of(context).textTheme.labelLarge,
|
style: Theme.of(context)
|
||||||
|
.textTheme
|
||||||
|
.labelLarge
|
||||||
|
?.copyWith(color: Theme.of(context).colorScheme.onSurface),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
...children,
|
...children,
|
||||||
|
|
Loading…
Reference in a new issue