From e71b65bdf3178234d1aef10c24f783830f7927df Mon Sep 17 00:00:00 2001 From: Andreas Fahrecker Date: Thu, 18 Mar 2021 16:05:09 +0100 Subject: [PATCH] Renamed Theme Utils and work on Progress List Item Signed-off-by: Andreas Fahrecker --- lib/app.dart | 2 +- lib/ui/progress/progress_list_item.dart | 63 ++++++++++++------- lib/ui/screens/dashboard_screen.dart | 2 +- lib/ui/screens/progress_creation_screen.dart | 2 +- .../{color_utils.dart => theme_utils.dart} | 1 + 5 files changed, 43 insertions(+), 27 deletions(-) rename lib/utils/{color_utils.dart => theme_utils.dart} (91%) diff --git a/lib/app.dart b/lib/app.dart index 82445b9..773bf0a 100644 --- a/lib/app.dart +++ b/lib/app.dart @@ -5,7 +5,7 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:redux/redux.dart'; import 'package:time_progress_tracker/redux/app_state.dart'; import 'package:time_progress_tracker/ui/screens/dashboard_screen.dart'; -import 'package:time_progress_tracker/utils/color_utils.dart'; +import 'package:time_progress_tracker/utils/theme_utils.dart'; class TimeProgressTrackerApp extends StatelessWidget { static const String name = "Time Progress Tracker"; diff --git a/lib/ui/progress/progress_list_item.dart b/lib/ui/progress/progress_list_item.dart index 4687cdb..84ad019 100644 --- a/lib/ui/progress/progress_list_item.dart +++ b/lib/ui/progress/progress_list_item.dart @@ -6,6 +6,7 @@ import 'package:flutter_platform_widgets/flutter_platform_widgets.dart'; import 'package:percent_indicator/linear_percent_indicator.dart'; import 'package:time_progress_tracker/models/time_progress.dart'; import 'package:time_progress_tracker/ui/screens/progress_detail_screen.dart'; +import 'package:time_progress_tracker/utils/theme_utils.dart'; class ProgressListTileStrings { static String percentString(TimeProgress tp) => @@ -28,47 +29,61 @@ class ProgressListItem extends StatelessWidget { @required this.leftColor, }); - Widget _renderSubtitle(BuildContext context) { - if (!timeProgress.hasStarted()) - return PlatformText(ProgressListTileStrings.startsInDaysString(timeProgress)); - if (timeProgress.hasEnded()) - return PlatformText(ProgressListTileStrings.endedDaysAgoString(timeProgress)); - return LinearPercentIndicator( - center: PlatformText(ProgressListTileStrings.percentString(timeProgress)), - percent: timeProgress.percentDone(), - progressColor: doneColor, - backgroundColor: leftColor, - lineHeight: 20, - ); - } - @override Widget build(BuildContext context) { void _onTileTap() => Navigator.pushNamed(context, ProgressDetailScreen.routeName, arguments: ProgressDetailScreenArguments(timeProgress.id)); - Text titleText = Text(timeProgress.name); + Text _renderTitle(bool material) => Text( + timeProgress.name, + style: material ? null : cupertinoCardTextStyle, + ); - if (Platform.isIOS) + Widget _renderSubtitle() { + if (!timeProgress.hasStarted()) + return PlatformText( + ProgressListTileStrings.startsInDaysString(timeProgress)); + if (timeProgress.hasEnded()) + return PlatformText( + ProgressListTileStrings.endedDaysAgoString(timeProgress)); + return LinearPercentIndicator( + center: + PlatformText(ProgressListTileStrings.percentString(timeProgress)), + percent: timeProgress.percentDone(), + progressColor: doneColor, + backgroundColor: leftColor, + lineHeight: 20, + ); + } + + Widget _renderCupertino() { + CupertinoThemeData theme = CupertinoTheme.of(context); return CupertinoButton( child: Container( decoration: BoxDecoration( - color: Colors.grey, + color: theme.primaryColor, borderRadius: BorderRadius.circular(12), ), padding: EdgeInsets.fromLTRB(15, 15, 5, 5), child: Column( children: [ - titleText, - _renderSubtitle(context), + _renderTitle(false), + _renderSubtitle(), ], ), ), onPressed: _onTileTap); - return ListTile( - title: titleText, - subtitle: _renderSubtitle(context), - onTap: _onTileTap, - ); + } + + Widget _renderMaterial() { + return ListTile( + title: _renderTitle(true), + subtitle: _renderSubtitle(), + onTap: _onTileTap, + ); + } + + if (Platform.isIOS) return _renderCupertino(); + return _renderMaterial(); } } diff --git a/lib/ui/screens/dashboard_screen.dart b/lib/ui/screens/dashboard_screen.dart index 0c1a8b7..817fac9 100644 --- a/lib/ui/screens/dashboard_screen.dart +++ b/lib/ui/screens/dashboard_screen.dart @@ -6,7 +6,7 @@ import 'package:time_progress_tracker/ui/screens/active_time_progresses_screen.d import 'package:time_progress_tracker/ui/screens/inactive_time_progresses_screen.dart'; import 'package:time_progress_tracker/ui/screens/progress_creation_screen.dart'; import 'package:time_progress_tracker/ui/screens/settings_screen.dart'; -import 'package:time_progress_tracker/utils/color_utils.dart'; +import 'package:time_progress_tracker/utils/theme_utils.dart'; import 'package:time_progress_tracker/utils/constants.dart'; class DashboardScreen extends StatefulWidget { diff --git a/lib/ui/screens/progress_creation_screen.dart b/lib/ui/screens/progress_creation_screen.dart index a764721..f817f98 100644 --- a/lib/ui/screens/progress_creation_screen.dart +++ b/lib/ui/screens/progress_creation_screen.dart @@ -12,7 +12,7 @@ import 'package:time_progress_tracker/redux/store_connectors/create_time_progres import 'package:time_progress_tracker/ui/buttons/create_progress_button.dart'; import 'package:time_progress_tracker/ui/buttons/platform_action_button.dart'; import 'package:time_progress_tracker/ui/progress/progress_editor_widget.dart'; -import 'package:time_progress_tracker/utils/color_utils.dart'; +import 'package:time_progress_tracker/utils/theme_utils.dart'; import 'package:time_progress_tracker/utils/helper_functions.dart'; class ProgressCreationScreen extends StatefulWidget { diff --git a/lib/utils/color_utils.dart b/lib/utils/theme_utils.dart similarity index 91% rename from lib/utils/color_utils.dart rename to lib/utils/theme_utils.dart index 76b51ca..1036552 100644 --- a/lib/utils/color_utils.dart +++ b/lib/utils/theme_utils.dart @@ -17,4 +17,5 @@ final CupertinoThemeData cupertinoThemeData = CupertinoThemeData( scaffoldBackgroundColor: Colors.white, ); final toolbarTextStyle = TextStyle(color: Colors.white, fontSize: 16); +final cupertinoCardTextStyle = TextStyle(color: Colors.white); final bottomTabsBackground = Colors.indigoAccent;