diff options
Diffstat (limited to 'lib/presentation/screens/settings')
3 files changed, 141 insertions, 7 deletions
diff --git a/lib/presentation/screens/settings/settings_screens/units/distance/distance_unit_screen.dart b/lib/presentation/screens/settings/settings_screens/units/distance/distance_unit_screen.dart index 3e9c135..3d84604 100644 --- a/lib/presentation/screens/settings/settings_screens/units/distance/distance_unit_screen.dart +++ b/lib/presentation/screens/settings/settings_screens/units/distance/distance_unit_screen.dart @@ -11,7 +11,6 @@ class DistanceUnitPage extends ConsumerWidget { ref.watch(unitStateProvider.select((unit) => unit.distanceUnit)); return Scaffold( - body: Column( children: [ CommonTitle( @@ -48,13 +47,14 @@ class DistanceUnitPage extends ConsumerWidget { contentPadding: const EdgeInsets.symmetric( horizontal: 16.0, vertical: 40.0), leading: Text( - 'Kilometers', + 'kilometers', style: Theme.of(context).textTheme.titleMedium, ), //title: Text(widget.title), //enabled: isSwitchOn, trailing: unit == DistanceUnit.kilometers - ? const Icon(Icons.done, + ? const Icon( + Icons.done, color: AGLDemoColors.periwinkleColor, size: 48, ) @@ -90,13 +90,14 @@ class DistanceUnitPage extends ConsumerWidget { contentPadding: const EdgeInsets.symmetric( horizontal: 16.0, vertical: 40.0), leading: Text( - 'Miles', + 'miles', style: Theme.of(context).textTheme.titleMedium, ), //title: Text(widget.title), //enabled: isSwitchOn, trailing: unit == DistanceUnit.miles - ? const Icon(Icons.done, + ? const Icon( + Icons.done, color: AGLDemoColors.periwinkleColor, size: 48, ) diff --git a/lib/presentation/screens/settings/settings_screens/units/pressure/pressure_unit_screen.dart b/lib/presentation/screens/settings/settings_screens/units/pressure/pressure_unit_screen.dart new file mode 100644 index 0000000..5be8a05 --- /dev/null +++ b/lib/presentation/screens/settings/settings_screens/units/pressure/pressure_unit_screen.dart @@ -0,0 +1,121 @@ +import 'package:flutter_ics_homescreen/export.dart'; + +class PressureUnitPage extends ConsumerWidget { + const PressureUnitPage({super.key}); + + static Page<void> page() => + const MaterialPage<void>(child: PressureUnitPage()); + @override + Widget build(BuildContext context, WidgetRef ref) { + final unit = + ref.watch(unitStateProvider.select((unit) => unit.pressureUnit)); + + return Scaffold( + body: Column( + children: [ + CommonTitle( + title: 'Pressure', + hasBackButton: true, + onPressed: () { + context.flow<AppState>().update((state) => AppState.units); + }, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 144), + child: ListView( + children: [ + Container( + height: 130, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + stops: unit == PressureUnit.kilopascals + ? [0, 0.01, 0.8] + : [0.1, 1], + colors: unit == PressureUnit.kilopascals + ? <Color>[ + Colors.white, + Colors.blue, + const Color.fromARGB(16, 41, 98, 255) + ] + : <Color>[Colors.black, Colors.black12]), + ), + child: ListTile( + minVerticalPadding: 0.0, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16.0, vertical: 40.0), + leading: Text( + 'kilopascals', + style: Theme.of(context).textTheme.titleMedium, + ), + //title: Text(widget.title), + //enabled: isSwitchOn, + trailing: unit == PressureUnit.kilopascals + ? const Icon( + Icons.done, + color: AGLDemoColors.periwinkleColor, + size: 48, + ) + : null, + onTap: () { + ref + .read(unitStateProvider.notifier) + .setPressureUnit(PressureUnit.kilopascals); + }), + ), + const SizedBox( + height: 5, + ), + Container( + height: 130, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + stops: unit == PressureUnit.psi + ? [0, 0.01, 0.8] + : [0.1, 1], + colors: unit == PressureUnit.psi + ? <Color>[ + Colors.white, + Colors.blue, + const Color.fromARGB(16, 41, 98, 255) + ] + : <Color>[Colors.black, Colors.black12]), + ), + child: ListTile( + minVerticalPadding: 0.0, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16.0, vertical: 40.0), + leading: Text( + 'PSI', + style: Theme.of(context).textTheme.titleMedium, + ), + //title: Text(widget.title), + //enabled: isSwitchOn, + trailing: unit == PressureUnit.psi + ? const Icon( + Icons.done, + color: AGLDemoColors.periwinkleColor, + size: 38, + ) + : null, + + onTap: () { + ref + .read(unitStateProvider.notifier) + .setPressureUnit(PressureUnit.psi); + }, + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/presentation/screens/settings/settings_screens/units/units_screen.dart b/lib/presentation/screens/settings/settings_screens/units/units_screen.dart index 1c6e37c..fde7505 100644 --- a/lib/presentation/screens/settings/settings_screens/units/units_screen.dart +++ b/lib/presentation/screens/settings/settings_screens/units/units_screen.dart @@ -30,8 +30,8 @@ class UnitsPage extends ConsumerWidget { icon: Icons.calendar_month_outlined, title: 'Distance', unitName: unit.distanceUnit == DistanceUnit.kilometers - ? 'Kilometers' - : 'Miles', + ? 'kilometers' + : 'miles', hasSwich: false, voidCallback: () async { context @@ -50,6 +50,18 @@ class UnitsPage extends ConsumerWidget { .flow<AppState>() .update((next) => AppState.tempUnit); }), + UnitsTile( + icon: Icons.straighten, + title: 'Pressure', + unitName: unit.pressureUnit == PressureUnit.kilopascals + ? 'kilopascals' + : 'PSI', + hasSwich: true, + voidCallback: () { + context + .flow<AppState>() + .update((next) => AppState.pressureUnit); + }), ], ), ), |